Android 如何修复DownloadManager can';无法打开文件而文件丢失?
我有一个使用downloadManager的项目,我已经可以在屏幕上显示下载进度,但问题是当我下载文件后,如果它说“无法打开文件”,请单击“下载完成” 这是我的密码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
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文件的第三方应用程序之后,我就不会再有这个问题了,因为下载的文件现在将由该应用程序打开。请尝试我的新编辑功能……它在我的手机上运行良好。希望它在你的手机上也能正常工作@乔什帕里努萨