如何将文件保存到外部存储并重新打开?

时间:2019-04-13 11:46:25

标签: android file storage android-external-storage

我正在编写一个应用程序,该应用程序可以从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 is null

File openFile = new File("...行是否有问题 还是我必须以其他方式创建文件对象?

是否有更好的打开文件的方法(在我的情况下,打开文件的意思是:开始打算将其显示为pdf-viewer,html-viewer等其他应用程序),或者我的代码中的错误在哪里? 谢谢你!

0 个答案:

没有答案