首页 > 解决方案 > URI 持久权限行为

问题描述

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

ACTION_OPEN_DOCUMENT_TREE我首先使用和使用FLAG_GRANT_WRITE_URI_PERMISSION,FLAG_GRANT_READ_URI_PERMISSION以及FLAG_GRANT_PERSISTABLE_URI_PERMISSION在调用意图时获取树 URI 。

在 OnActivityResult 中,我还使用 getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION)来获取获取的 uri 的持久性。然后我将这个 uri 存储在 sharedpreferences 中uri.toString()

现在我面临的问题是,当我从共享首选项中读取字符串化的 uri 并将其解析为 URI 然后尝试 getContentResolver().getPersistedUriPermissions()时,我从那里获得的权限是随机的。有时列表是空的,有时它是正确的。所以我的问题归结为权限真正持续多久?我找不到任何关于此的文档。

我正在模拟器上尝试这个。有时即使在重新启动后我也有权限,但有时我会在模拟器上长时间空闲后丢失它们(没有任何应用程序运行)。

如果我遗漏了什么,请告诉我。提前致谢。

标签: androidgoogle-contacts-apistorage-access-framework

解决方案


推荐阅读