我有一个file:///
Uri
(图像),我要发送到其他应用程序的活动以供阅读。这Uri
存在于我的缓存目录中,如下所示:
file:///data/user/0/com.example/cache/temp1510385678660-359616374.jpg
第三方应用程序(在本例中为画廊应用程序)显示 Toast “无法加载媒体”,这意味着它无法读取提供的Uri
.
我在 Intent 中添加了以下标志:
intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
为什么其他应用程序无法读取我的 Uri 以及如何使我的 Uri 可访问?
注意:如果您认为我应该使用 a FileProvider
,我实际上将它用于 API >= 24 因为在 API < 24 上使用它会导致在将 Uri 发送到 Google 相册应用程序时出错(他们的应用程序中的一个错误)。
那是您的应用程序的私有内部存储。所以没有其他应用程序可以访问。
您必须使用文件提供程序。
即使您将文件放在外部存储上,然后在 Android 7+ 上也需要使用文件提供程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句