应用程序重新启动时权限拒绝访问图片URI

时间:2018-05-26 12:50:30

标签: android permissions android-contentresolver

如果没有偶尔的拔毛经验,那就不是android编程......

目前使用模拟器...

这显然是一个新功能:

Permission Denial: opening provider com.google.android.apps.photos.contentprovider.impl.MediaContentProvider from ProcessRecord{6ebfe9e 22355:xxx/u0a140} (pid=22355, uid=10140) that is not exported from UID 10068

在所有情况下都已授予对EXTERNAL_STORAGE的访问权限。

情景:

  1. 用户选择图片(使用ACTION_GET_CONTENT)和活动 结果很好,图片显示在我的应用程序上下文中。
  2. 图片的URI保存在app DB中。
  3. 应用已重新启动。
  4. 尝试访问 相同的 URI并获取上述权限拒绝 异常。
  5. 然后在原始图片选择活动结果上尝试takePersistableUriPermission,并抛出一个异常,表明没有可持久的权限。

    编辑:好的,我已经实现了接受的答案(但只是使用了OPEN_DOCUMENT),并且不再尝试将结果URI投影到媒体路径中。所以在忏悔的行为中,我再说一次:

      

    我永远不会尝试将URI转换为媒体商店路径。

    (即使GET_CONTENT和投射曾经工作过 - 好吧,我无法帮助自己。)

1 个答案:

答案 0 :(得分:1)

确实

使用ACTION_GET_CONTENT获得的Uries仅在您的应用运行时才有效。

如果你想坚持使用ACTION_OPEN_DOCUMENT_TREE开始uri,然后在onActivityResult中继续使用获得的权限。

看看takePersistabkeUriPermission()。

(或类似的东西)。

您不需要外部存储权限等。