【发布时间】:2017-07-23 22:50:08
【问题描述】:
在我的应用中,我会显示一个帖子列表,其中帖子可能有图片。当用户点击帖子图片时,创建选择器会显示可用选项,如“照片”、“画廊”。我的问题是,为什么画廊不能在 android 7.0 或 API 24 及更高版本上打开图像?我收到错误“无法打开文件”。在 API 级别 23 及以下,我提供了似乎工作正常的实际文件路径。我在发布这个问题之前确认了以下事情。有趣的部分是“照片”可以打开它。
-
我使用 FileProvider 获得了正确的内容 uri。我的 uri 看起来像这样:
content://package.fileprovider/attachment/filename
我使用了正确的 mime 类型。
我正在使用正确的意图和权限标志。请参阅以下代码:
意图 myIntent = new Intent(Intent.ACTION_VIEW); myIntent.putExtra(ShareCompat.EXTRA_CALLING_PACKAGE, getActivity().getPackageName()); myIntent.putExtra(ShareCompat.EXTRA_CALLING_ACTIVITY, getActivity().getComponentName());
myIntent.setDataAndType(uri, mimeType); myIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivity(Intent.createChooser(myIntent, "打开文件:"));
【问题讨论】:
-
检查 LogCat 以查看您的图库应用在显示该消息时是否记录了任何值得注意的内容。可能是您的设备有一个错误的图库应用。
-
感谢您的回复。我检查了 LogCat。我没有看到任何注释或消息。还有其他建议吗?
-
所有作品都在牛轧糖上。没问题。两种不同的设备。
-
我使用的是 LG G5,安卓 7.0。它不工作。你发现代码有什么问题吗?
标签: android