重启App后访问图片URI遭权限拒绝的Android技术问题
Android 权限拒绝问题排查与解决记录
做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保存至应用数据库。
- 重启应用。
- 尝试访问同一URI时,触发上述权限拒绝异常。
之后我尝试在图片选择的Activity返回结果中调用takePersistableUriPermission,结果却抛出了“无持久权限可用”的异常。
编辑补充:后来我采用了官方推荐的方案——仅使用OPEN_DOCUMENT,并且不再尝试将返回的URI转换为媒体路径。在此郑重声明:
我绝不会再尝试将URI转换为Media Store路径。
(尽管之前用ACTION_GET_CONTENT加路径转换是可行的——好吧,我忍不住吐槽一下。)
内容的提问来源于stack exchange,提问作者user2711811
相关产品推荐
相关产品推荐

