应用程序如何从我的Cache目录中读取文件?

时间:2017-11-11 07:39:02

标签: android

我有一个file:/// Uri(图片),我发送到其他App的活动进行阅读。这个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可以访问?

注意:如果您认为,我应该使用FileProvider,我实际上将其用于API> = 24,因为在API上使用它< 24将Uri发送到Google照片应用程序时会导致错误(他们的应用程序中存在错误)。

1 个答案:

答案 0 :(得分:0)

这是您应用的私人内部存储空间。所以没有其他应用可以访问。

您必须使用文件提供程序。

即使您将文件放在外部存储设备上,然后在Android 7+上,您也需要使用文件提供程序。