[英]Android max number of persistable uri permission granted to an app is limited to 128?
我的应用程序通过 Intent 调用 Android 图片库,然后用户可以选择多张图片。 事实证明,下面列出的代码(已在其他帖子中报告)对我来说效果很好。
if(Utils.isKitkat())
{
final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION);
ContentResolver resolver = getActivity().getContentResolver();
for (Uri uri : images)
{
resolver.takePersistableUriPermission(uri, takeFlags);
}
}
无论如何,我注意到授予我的应用程序的最大持久 uri 数量限制为 128。如果我选择超过 128 个 uri,我会收到错误消息:
java.lang.SecurityException: Permission Denial: opening provider........
当我尝试处理无法保留权限的图像时。 有人知道限制吗? 你能想出任何解决办法吗?
我知道这是一篇旧帖子,但我在我的应用程序中遇到了同样的问题,因此开始查看 Android 源代码,发现:com.android.server.uri.UriGrantsManagerService,请参阅此链接。
它定义了一个private static final int MAX_PERSISTED_URI_GRANTS = 128;
我没有详细说明这是如何使用的,只是注意到在该类的私有方法中使用了该常量,该方法在 takePersistableUriPermission() 方法中被调用。 所以似乎是合乎逻辑的“罪魁祸首”。
鉴于这是一个私有静态常量,我认为在他们决定更改它之前没有“解决方法”。
我在这里输入了一个增强请求来跟踪这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.