权限拒绝在应用重启时访问图片 URI
Permission Denial accessing picture URI on app restart
如果没有偶尔的拉毛经验就不会是 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 的访问权限。
场景:
- 用户选择图片(使用ACTION_GET_CONTENT)和activity
结果很好,图片显示在我的应用程序上下文中。
- 图片的 URI 保存在应用程序数据库中。
- 应用程序重新启动。
- 尝试访问same URI,得到上面的Permission Denial
异常。
然后尝试 takePersistableUriPermission
原始图片选择 activity 结果并引发异常,表明没有持久权限。
编辑:好的,我已经实现了接受的答案(但只是使用 OPEN_DOCUMENT)并且不再尝试将生成的 URI 投射到媒体路径中。因此,为了忏悔,我再次声明:
I will never attempt to translate a URI into a Media Store path.
(尽管 GET_CONTENT 和投影曾经有效 - 好吧,我情不自禁。)
确实。
通过 ACTION_GET_CONTENT 获取的 Uries 仅在您的应用程序运行时有效。
如果你想持久化以 ACTION_OPEN_DOCUMENT_TREE 开头的 uri,然后在 onActivityResult 中使获得的权限持久化。
看看 takePersistabkeUriPermission()。
(或类似的东西)。
您不需要外部存储权限等。
如果没有偶尔的拉毛经验就不会是 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 的访问权限。
场景:
- 用户选择图片(使用ACTION_GET_CONTENT)和activity 结果很好,图片显示在我的应用程序上下文中。
- 图片的 URI 保存在应用程序数据库中。
- 应用程序重新启动。
- 尝试访问same URI,得到上面的Permission Denial 异常。
然后尝试 takePersistableUriPermission
原始图片选择 activity 结果并引发异常,表明没有持久权限。
编辑:好的,我已经实现了接受的答案(但只是使用 OPEN_DOCUMENT)并且不再尝试将生成的 URI 投射到媒体路径中。因此,为了忏悔,我再次声明:
I will never attempt to translate a URI into a Media Store path.
(尽管 GET_CONTENT 和投影曾经有效 - 好吧,我情不自禁。)
确实。
通过 ACTION_GET_CONTENT 获取的 Uries 仅在您的应用程序运行时有效。
如果你想持久化以 ACTION_OPEN_DOCUMENT_TREE 开头的 uri,然后在 onActivityResult 中使获得的权限持久化。
看看 takePersistabkeUriPermission()。
(或类似的东西)。
您不需要外部存储权限等。