繁体   English   中英

授予应用程序的 Android 最大持久 uri 权限数限制为 128?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM