我正在编写一个应用程序,该应用程序可以从Internet获取文件并将其保存到外部存储中。无限期后,应用程序应使用“ ACTION_VIEW-Intent”从外部存储重新打开该文件(如果该文件仍然存在)。
下载没有问题,我使用DownloadManager
进行了保存并保存到/storage/emulated/0/MyApp/
,但是我在重新打开文件方面很挣扎。如何做到最好?
我已经检查了权限READ和WRITE外部存储,创建了一个从文件中检测Mime-Type
的方法(getMimeType()-Method),并尝试使用意图和setDataAndType()
打开(以下代码):
File openFile = new File("/storage/emulated/0/MyApp/example1.txt");
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(openFile), getMimeType(openFile));
startActivity(intent);
但是使用此代码,我得到以下错误:
android.os.FileUriExposedException:file:///storage/emulated/0/MyApp/example1.txt通过Intent.getData()在应用程序之外公开
在调试我的应用程序时,即使我调用了构造函数,我仍然看到openFile对象为null。
第File openFile = new File("...
行是否有问题
还是我必须以其他方式创建文件对象?
是否有更好的打开文件的方法(在我的情况下,打开文件的意思是:开始打算将其显示为pdf-viewer,html-viewer等其他应用程序),或者我的代码中的错误在哪里? 谢谢你!