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

如何在 Android 存储访问框架中使用 FLAG_GRANT_PREFIX_URI_PERMISSION?

如何解决如何在 Android 存储访问框架中使用 FLAG_GRANT_PREFIX_URI_PERMISSION?

我想使用 Android 中的存储访问框架 (SAF) 获取大量文件 (>600) 的 uri 并将其保存在本地数据库中。

为了获得 1 个文件的 uri,我调用

intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
                | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION
                | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
startActivityForResult(intent,RESULT_FILE_OPEN)

然后在 onActivityResult 中,我坚持授予的权限:

getContentResolver().takePersistableuriPermission(intent.getData(),Intent.FLAG_GRANT_READ_URI_PERMISSION);

但我知道 Android 11 limits to 512 您可以保留的权限。 所以我想我可以使用标志 Intent.FLAG_GRANT_PREFIX_URI_PERMISSION 来授予对 uri 具有前缀匹配的文件的访问权限,从而减少持久化 uri 权限的数量

但我不知道如何使用这个标志。我使用它的方式,我无法读取具有前缀匹配的文件

所以我的问题是:

标记 Intent.FLAG_GRANT_PREFIX_URI_PERMISSION 应该如何使用?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。