java.lang.SecurityException: Permission Denial: 打开提供者 com.android.providers.media.Media

Posted

技术标签:

【中文标题】java.lang.SecurityException: Permission Denial: 打开提供者 com.android.providers.media.Media【英文标题】:java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.Media 【发布时间】:2017-06-24 14:12:14 【问题描述】:

我得到-

java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecordf1d408f 5594:firebasejobscheduler.test.com.firbasejobschedulerdemo/u0a1227 (pid=5594, uid=11227) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS

 bm = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);

我检查了this 的帖子,但无法解决。我该如何解决?

【问题讨论】:

查看此链接,***.com/questions/22178041/… 您的测试设备的操作系统版本是多少? 棉花糖和棒棒糖适用于两种不同的设备 @RejoylinLokeshwaran 我已经看到并尝试了 Intent.ACTION_OPEN_DOCUMENT .. 但崩溃发生在“bm = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);” 在哪个设备上崩溃了? 【参考方案1】:

您必须检查 Marshmallow 中的 RunTimePermissions。 检查这个link。 检查它的 READ_EXTERNAL_STORAGE 权限

【讨论】:

相信我它不起作用,securityException 仅在您的应用程序不允许某些权限时出现...您的异常要求 android.permission.MANAGE_DOCUMENTS 权限.. 试试这个也有权限.. 如果你还是想检查你的应用程序,那么在你的安卓设备中转到设置-> 应用程序->_yourapp_->权限-> 允许所有需要的权限,但不推荐,您应该提供允许应用程序权限的 UI.. 在这里您可以看到需要哪些权限 我在清单和运行时都添加了权限..我已经检查过..我在服务内部使用bm = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);,如果我的服务启动,我会在 rebbot 设备上崩溃 您是否将权限状态保存在 sharedPreferences 中?如果您不保存权限状态,可能会发生这种情况。

以上是关于java.lang.SecurityException: Permission Denial: 打开提供者 com.android.providers.media.Media的主要内容,如果未能解决你的问题,请参考以下文章