当前位置: 首页 > 知识库问答 >
问题:

是否可以在不访问互联网的情况下从应用程序下载zip文件?

柳高卓
2023-03-14

我的Android应用程序允许用户从互联网下载zip文件。有人可以判断是否可以从应用程序本身安装zip文件?无法访问互联网。我一直在寻找机会来做这件事很长一段时间,并且已经不知所措了。

private void gotoact1(View view)
{
    switch (view.getId()) {


        case R.id.buttonDow:

            Intent intent3 = new Intent(Intent.ACTION_VIEW,         
                 Uri.parse("https://drive.google.com/file/d/16eu- 
                 2gI8c549rt6Ve04UIyDm3oeGAHeu/view?usp=sharing"));

            startActivity(intent3);
            break;
        default:
            break;
    }
}


public void onClick(View view) {
    //requestNewInterstitial();
    clicked = view;
    {gotoact1(clicked); }
}

附言:谢谢回复,我开始明白了!我将我的zip文件添加到名称为“my.zip”的“原始”文件夹中,并添加了代码(如下),不幸的是手机上的文件安装没有发生,你能看到我的错误吗?

private   void gotoact1(View view)
{
    switch (view.getId()) {

        case
                R.id.buttonDowN:
            saveResourceToFile();

            break;
        default:
            break;
    }
}

public void saveResourceToFile() {
    InputStream in = null;
    FileOutputStream fout = null;
    try {
        in = getResources().openRawResource(R.raw.signature);
        String downloadsDirectoryPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
        String filename = "my.zip";
        fout = new FileOutputStream(new File(downloadsDirectoryPath + "/" + filename));

        final byte data[] = new byte[1024];
        int count;
        while ((count = in.read(data, 0, 1024)) != -1) {
            fout.write(data, 0, count);
        }
        Toast toast = Toast.makeText(getApplicationContext(),
                "DownloadOne!", Toast.LENGTH_SHORT);
        toast.show();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Toast toast = Toast.makeText(getApplicationContext(),
                "DownloadTwo!", Toast.LENGTH_SHORT);
        toast.show();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (in != null) {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (fout != null) {
            try {
                fout.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

我在代码中添加了Toast并包含了DownloadTwo。为什么打开了FileNotFoundException?我还是不明白:(很尴尬,我自己也想不出来,对不起

2019-03-24 05:10:03.662 5385-5385/com.example。我的应用程序W/系统。错误:java.io。FileNotFoundException:/storage/emulated/0/Download/my。zip(许可被拒绝)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在java.io.FileOutputStream。open0(原生方法)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在java.io.FileOutputStream.open(FileOutputStream.java:308)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在java.io.FileOutputStream(FileOutputStream.java:238)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在java.io.FileOutputStream。(FileOutputStream.java:180)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在com.example.myapplication.Main4.saveResourceToFile(Main4.java:57)2019-03-24 05:10:03.663 5385-5385/com.exchange。我的应用程序W/系统。错误:在com.example.myapplication.Main4.gotoact1(Main4.java:42)2019-03-24 05:10:03.663 5385-5385/com.exchange。我的应用程序W/系统。错误:在com.example.myapplication.Main4.onClick(Main4.java:33)2019-03-24 05:10:03.663 5385-5385/com.exchange。我的应用程序W/系统。错误:在android.view.view.performClick(view.java:6648)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在android.view.view.performClickInternal(view.java:6620)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在android.view.view.access$3100(view.java:787)2019-03-24 05:10:03.663 5385-5385/com.example。我的应用程序W/系统。错误:在android.view.view$PerformClick.run(view.java:26167)2019-03-24 05:10:03.664 5385-5385/com.example。我的应用程序W/系统。错误:在android.os.Handler.handleCallback(Handler.java:891)2019-03-24 05:10:03.664 5385-5385/com.example。我的应用程序W/系统。错误:在android.os.Handler.dispatchMessage(Handler.java:102)2019-03-24 05:10:03.664 5385-5385/com.example。我的应用程序W/系统。错误:在android.os.Looper.loop(Looper.java:207)2019-03-24 05:10:03.664 5385-5385/com.example。我的应用程序W/系统。错误:在android.app.ActivityThread.main(ActivityThread.java:7536)2019-03-24 05:10:03.664 5385-5385/com.example。我的应用程序W/系统。错误:在java.lang.reflect.Method中。调用(本机方法)2019-03-24 05:10:03.664 5385-5385/com.example。我的应用程序W/系统。错误:在com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)2019-03-24 05:10:03.664 5385-5385/com.example。我的应用程序W/系统。错误:在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)2019-03-24 05:10:03.690 5385-5385/com.example。myapplication D/hwappinerBoostimpl:asyncReportData.com.example。myapplication,2,1,1,0间隔=80 2019-03-24 05:10:03.706 5385-5412/com.example。我的应用程序D/OpenGLRenderer:HWUI二进制已启用2019-03-24 05:10:03.740 5385-5412/com.example。myapplication D/mali_winsys:EGLint new_window_surface(egl_winsys_display*,void*,EGLSurface,EGLConfig,egl_ winsys_surface**,EGLBoolean)返回0x3000 2019-03-24 05:10:03.741 5385-5412/com.example。myapplication D/OpenGLRenderer:HWUI二进制已启用2019-03-24 05:10:03.940 5385-5385/com.example。myapplication D/hwappinerBoostimpl:asyncReportData.com.example。myapplication,2,1,2,0间隔=330 2019-03-24 05:10:05.332 5385-5385/com.example。myapplication D/AwareBitmapCacher:handleInit开关未打开pid=5385 2019-03-24 05:10:05.696 5385-5412/com.example。myapplication W/libEGL:EGLNativeWindowType 0x7abd817010断开连接失败

共有1个答案

贺景山
2023-03-14

是否通过将zip文件从应用程序的原始文件夹复制到Android下载文件夹来解决?

我认为这个问题是相似的。

但是,您将需要添加权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

同样在我的情况下,我不得不修复答案的以下部分。添加: “/”

fout = new FileOutputStream(new File(downloadsDirectoryPath + "/" + filename));
 类似资料:
  • 我正在尝试将容器部署到AWS上的专用网络Fargate集群。我的单个专有网络上确实有一个互联网网关: 我的集群/服务所在的VPC中确实有一个NAT网关,用于特定子网: 该子网的路由似乎也可以: 服务的安全组不会阻止任何传入连接: 但我的容器甚至没有以臭名昭著的异常开始:CannotPullContainerError:来自守护进程的错误响应:Gethttps://registry-name/:ne

  • (是的,这是hacky,可能不是最佳实践,但它是体积最小的解决方案) 我有一个涉及几个jar的项目——一个可运行的启动器、一个服务器、一个服务器的包装器和服务器的插件。 启动器通过启动一个新的未连接的进程、一个子进程或者只是实例化它来运行包装器,这取决于配置。对于这个问题来说,这应该不重要。 包装器使用URLClassLoader来加载服务器jar并启动它,这工作正常。 在启动服务器之前,包装器会

  • 问题内容: 如果要使用Linq-SQL,还必须将DB Table拖到设计器表面以创建实体类。 我一直喜欢我的应用程序中的完全控制权,并且不喜欢dotnet创建的类。 是否可以使用我自己的数据访问层实体类在Linq和DB之间提供此连接? 我该如何完成? 问题答案: 您可以使用Linq-to-SQL非常轻松地编写自己的类-只需使用一些属性绘制类即可。 例如,这是我的一个项目中有一个非常简单的表,它可以

  • 问题内容: SpringSource.org将其站点更改为http://spring.io 有人知道如何在没有Maven / github的情况下获取最新版本吗?来自http://spring.io/projects 问题答案: 请编辑以使此镜像列表保持最新 我找到了这个仓库,你可以在其中直接从包含所需jar的文件中下载文件。 http://maven.springframework.org/re

  • 我们有一个使用Spring WebFlux的应用程序,它使用Project Reactor。我对应用程序运行了BlockHound评估,它报告了java。io。随机访问文件。readBytes在hibernate validator、orika mapper等库中阻止调用。hibernate validator从其ValidationMessages中读取错误消息。属性文件。此阻塞调用(仅从属性文

  • 我的问题是,有什么方法可以让我序列化/反序列化一个名为onlinePlayers的列表,该列表引用了“John1”的实例,它也碰巧在List allPlayers中,而不重复“John1”,同时仍然引用那个对象? 我猜当我反序列化allPlayers时,它将创建不同于原始对象的对象,所以onlinePlayers在反序列化后不可能仍然引用相同的对象。我是否应该编写一个自定义方法,在反序列化后将新创