问题描述
所以我正在测试一些 SAF,我发现 URI 上的权限行为非常不一致。 这是我的做法:
我首先使用 ACTION_OPEN_DOCUMENT_TREE
获取树 URI,并在调用意图时使用 FLAG_GRANT_WRITE_URI_PERMISSION
、FLAG_GRANT_READ_URI_PERMISSION
和 FLAG_GRANT_PERSISTABLE_URI_PERMISSION
。
在 OnActivityResult 中,我还使用了
getContentResolver().takePersistableuriPermission(uri,Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION)
获取对获取的 uri 的持久性。
然后我通过 uri.toString()
将此 uri 存储在 sharedpreferences 中。
现在我面临的问题是,当我从共享首选项中读取字符串化的 uri 并将其解析为 URI 然后尝试
getContentResolver().getPersistedUriPermissions()
,我从那里获得的权限是随机的。有时列表是空的,有时它有正确的列表。所以我的问题归结为权限真的会持续多久?我找不到任何关于此的文档。
我正在模拟器上尝试这个。有时即使在重新启动后我也有权限,但有时我会在模拟器上长时间空闲后丢失它们(没有运行任何应用程序)。
如果我遗漏了什么,请告诉我。 提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)