Dav*_*vid 5 android uri android-permissions
我的应用程序通过 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);
}
}
Run Code Online (Sandbox Code Playgroud)
无论如何,我注意到授予我的应用程序的最大持久 uri 数限制为 128。如果我选择超过 128 个 uri,我会收到错误消息:
java.lang.SecurityException: Permission Denial: opening provider........
Run Code Online (Sandbox Code Playgroud)
当我尝试处理无法保留权限的图像时。有人知道限制吗?你能想出任何解决办法吗?
我知道这是一篇旧帖子,但我在我的应用程序中遇到了同样的问题,因此开始查看 Android 源代码,并发现:com.android.server.uri.UriGrantsManagerService,请参阅此链接。
它定义了一个private static final int MAX_PERSISTED_URI_GRANTS = 128;
我没有追踪它的具体使用方式,只是注意到该常量在该类的私有方法中使用,该方法在 takePersistableUriPermission() 方法中被调用。所以看起来像是合乎逻辑的“罪魁祸首”。
鉴于这是一个私有静态常量,我认为在他们决定更改它之前,没有“解决方法”。
我在此处输入了一个增强请求来跟踪此情况。
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |