微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

URI 持久权限行为

如何解决URI 持久权限行为

所以我正在测试一些 SAF,我发现 URI 上的权限行为非常不一致。 这是我的做法:

我首先使用 ACTION_OPEN_DOCUMENT_TREE 获取树 URI,并在调用意图时使用 FLAG_GRANT_WRITE_URI_PERMISSIONFLAG_GRANT_READ_URI_PERMISSIONFLAG_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 举报,一经查实,本站将立刻删除。