Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何修复DownloadManager can';无法打开文件而文件丢失?_Android_Android Download Manager - Fatal编程技术网

Android 如何修复DownloadManager can';无法打开文件而文件丢失?

Android 如何修复DownloadManager can';无法打开文件而文件丢失?,android,android-download-manager,Android,Android Download Manager,我有一个使用downloadManager的项目,我已经可以在屏幕上显示下载进度,但问题是当我下载文件后,如果它说“无法打开文件”,请单击“下载完成” 这是我的密码 public class MainActivity extends AppCompatActivity { Button tombolDownload; DownloadManager downloadManager; @Override protected void onCreate(Bundle

我有一个使用downloadManager的项目,我已经可以在屏幕上显示下载进度,但问题是当我下载文件后,如果它说“无法打开文件”,请单击“下载完成” 这是我的密码

public class MainActivity extends AppCompatActivity {
    Button tombolDownload;
    DownloadManager downloadManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tombolDownload = (Button) findViewById(R.id.btnDownload);
        tombolDownload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
                Uri uri = Uri.parse("http://192.168.1.64/FileAPK/app1.apk");
                DownloadManager.Request request = new DownloadManager.Request(uri);
                request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                Long reference = downloadManager.enqueue(request);
            }
        });
    }
}

如何解决此问题?

我认为您也应该声明APK文件的MIME类型

MIME类型为:
application/vnd.android.package archive

请按以下方式使用:

request.setMimeType("application/vnd.android.package-archive");
编辑:也添加以下行,以便它知道在哪里存储它。在您的代码中,它使用一些没有扩展名的随机数保存文件,因此发生了无法打开文件的问题

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"app1.apk");
其中app1.apk是扩展名为的文件名,还添加了
setMimeType()

不要忘记个人任务
WRITE\u EXTERNAL\u STORAGE


希望能有所帮助

我在下载一个zip文件时遇到了类似的问题

在尝试通过单击下载管理器的通知打开下载的文件时,我会收到相同的
无法打开文件
通知

在我的特殊情况下,我了解到这与代码本身无关——因为文件确实被正确下载了——但事实上,所使用的设备没有安装能够处理zip文件的应用程序


在我安装了一个能够处理zip文件的第三方应用程序之后,我就不会再有这个问题了,因为下载的文件现在将由该应用程序打开。

请尝试我的新编辑功能……它在我的手机上运行良好。希望它在你的手机上也能正常工作@乔什帕里努萨