我的问题:当openFile()
意向尝试StartActivityForResult
时,应用程序挂起并出现空白屏幕和圆形光标。文件存储到应用程序。
我做了什么:在此问题之前和之后,我研究了如何使用Intents打开文件。我发现了许多类似但不同的方法,并使用文字示例或各种示例的组合来查看是否可以找到并解决该问题(请参阅下文)。我没有收到发现的任何类型的错误消息,并且以前使用了FileUriExposedException
,但已解决。这些文件存储到应用程序中,可能是权限问题,并尝试了我所知的知识,包括使用外部读取和写入更新清单,并在访问意图上添加了标志设置。
我想做的事情:我试图学习如何通过具有简单JPG图像的意图打开文件,然后在我理解了如何打开最终扩展为打开各种文件类型的过程。
下面是我正在使用的当前代码,它包含一个MimeTypeMap,我尝试使用它代替“ image / jpeg”,以防我的语法在MIME类型上不正确,这似乎没有影响。
private void openFile(Uri uri, String fName) {
MimeTypeMap myMime = MimeTypeMap.getSingleton();
String mimeType = myMime.getMimeTypeFromExtension(getUpperBound(fName));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("content://" + uri), "image/jpeg");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent, 2);
}
所产生的问题的图像在下面悬挂并且从未打开过:
我尝试过的某些引用链接:
https://developer.android.com/guide/components/intents-common
ACTION_VIEW intent for a file with unknown MimeType
Open File With Intent (Android)
http://www.androidsnippets.com/open-any-type-of-file-with-default-intent.html
尝试使用来源Uri
本身:
intent.setDataAndType(uri, "image/jpeg");