获取权限拒绝异常

mario595

我的应用程序中有一个活动,该活动允许用户从设备中一个接一个地选择多个文件,我使用的是这样的意图:

Intent intent = new Intent();
intent.setType("*/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, getString(R.string.select_attachments_activity_chooser_label)), SELECT_PICTURE);

这工作得很好,我正在选择文件的Uri,它们看起来像这样:

content://com.android.providers.media.documents/document/image%3A42555

然后,如果文件是图像,则使用以下命令对其进行解码:

InputStream streamForDecodeBitmap = MyApp.getContext().getContentResolver().openInputStream(uri);
Bitmap bitmap = BitmapFactory.decodeStream(streamForDecodeBitmap, null, options);

当用户单击按钮时,我通过意图将Uris列表传递给另一个活动,并且在此活动中,在AsyncTask中,我将文件编码为base64以通过网络发送:

InputStream is = MyApp.getContext().getContentResolver().openInputStream(uri);
byte[] inputData = getBytes(is);
is.close();
return Base64.encodeToString(inputData, Base64.DEFAULT);

问题是当我打开inputStream时,有时它可以工作,但是在大多数情况下,我遇到此异常:

E/AndroidRuntime(22270): Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{42858fe0 22270:co.uk.manifesto.freeagentapp/u0a246} (pid=22270, uid=10246) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS

这些是清单中的所有权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>

我正在使用KITKAT(API 19)的设备中进行测试。

平行度

请也检查以下问题:
尝试从MediaStore读取时,Android KitKat securityException
权限拒绝:打开提供程序

对于KitKat上的相同问题,我使用了它。这是我从Stack Overflow链接之一中找到的一个选项/解决方法,您可以从Downloads / Recent中选择文件。

public static final int KITKAT_VALUE = 1002;

Intent intent;

if (Build.VERSION.SDK_INT < 19) {
    intent = new Intent();
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.setType("*/*");
    startActivityForResult(intent, KITKAT_VALUE);
} else {
    intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("*/*");
    startActivityForResult(intent, KITKAT_VALUE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == KITKAT_VALUE ) {
        if (resultCode == Activity.RESULT_OK) {
            // do something here
        }
    }
}

参考:KitKat上的Android Gallery为Intent返回了不同的Uri。ACTION_GET_CONTENThttp: //developer.android.com/guide/topics/providers/document-provider.html#client

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取权限被拒绝错误

来自分类Dev

Sudo chmod获取权限被拒绝

来自分类Dev

拒绝在Android M上获取权限

来自分类Dev

使用Wget获取“权限被拒绝的错误”

来自分类Dev

从_request()调用获取权限被拒绝的响应

来自分类Dev

拒绝在Android M上获取权限

来自分类Dev

权限被拒绝

来自分类Dev

权限被拒绝

来自分类Dev

授予了权限,但是当我尝试保存文件时,我获得了权限被拒绝的异常

来自分类Dev

错误= 13尝试获取ADB版本时权限被拒绝

来自分类Dev

Mac 10.9.2更新后,Git push保持获取权限被拒绝

来自分类Dev

Ansible中的Git模块在tmp目录上获取权限被拒绝

来自分类Dev

在go get命令上获取“ mkdir主页/用户权限被拒绝”

来自分类Dev

致命:无法获取凭证存储锁:权限被拒绝

来自分类Dev

在iframe中获取父级值会导致权限被拒绝?

来自分类Dev

Jenkins构建Xcode-获取构建错误“权限被拒绝”

来自分类Dev

获取有关“权限被拒绝”的更多信息

来自分类Dev

NFS客户端获取权限被拒绝错误

来自分类Dev

安装tensorflow和keras时获取权限被拒绝错误

来自分类Dev

从 url 下载和保存图像时获取权限被拒绝错误

来自分类Dev

如何克服“拒绝权限......使用ACTION_OPEN_DOCUMENT或相关API获取访问权限”?

来自分类Dev

放入IBM z / OS的JSch SFTP失败:无法写入文件;嵌套异常为3:权限被拒绝

来自分类Dev

Android异常“打开失败:EACCES(权限被拒绝)”-不是由于SD卡

来自分类Dev

mp4prasser异常java.io.IOException:打开失败:EACCES(权限被拒绝)

来自分类Dev

getContentResolver()。query(uriSMSURI,null,null,null,null)给出具有权限的权限拒绝引起的异常

来自分类Dev

权限被拒绝-缺少INTERNET权限?

来自分类Dev

Android Runtime权限(权限被拒绝)

来自分类Dev

postgresql:权限被拒绝的关系

来自分类Dev

Firebase写入权限被拒绝

Related 相关文章

  1. 1

    获取权限被拒绝错误

  2. 2

    Sudo chmod获取权限被拒绝

  3. 3

    拒绝在Android M上获取权限

  4. 4

    使用Wget获取“权限被拒绝的错误”

  5. 5

    从_request()调用获取权限被拒绝的响应

  6. 6

    拒绝在Android M上获取权限

  7. 7

    权限被拒绝

  8. 8

    权限被拒绝

  9. 9

    授予了权限,但是当我尝试保存文件时,我获得了权限被拒绝的异常

  10. 10

    错误= 13尝试获取ADB版本时权限被拒绝

  11. 11

    Mac 10.9.2更新后,Git push保持获取权限被拒绝

  12. 12

    Ansible中的Git模块在tmp目录上获取权限被拒绝

  13. 13

    在go get命令上获取“ mkdir主页/用户权限被拒绝”

  14. 14

    致命:无法获取凭证存储锁:权限被拒绝

  15. 15

    在iframe中获取父级值会导致权限被拒绝?

  16. 16

    Jenkins构建Xcode-获取构建错误“权限被拒绝”

  17. 17

    获取有关“权限被拒绝”的更多信息

  18. 18

    NFS客户端获取权限被拒绝错误

  19. 19

    安装tensorflow和keras时获取权限被拒绝错误

  20. 20

    从 url 下载和保存图像时获取权限被拒绝错误

  21. 21

    如何克服“拒绝权限......使用ACTION_OPEN_DOCUMENT或相关API获取访问权限”?

  22. 22

    放入IBM z / OS的JSch SFTP失败:无法写入文件;嵌套异常为3:权限被拒绝

  23. 23

    Android异常“打开失败:EACCES(权限被拒绝)”-不是由于SD卡

  24. 24

    mp4prasser异常java.io.IOException:打开失败:EACCES(权限被拒绝)

  25. 25

    getContentResolver()。query(uriSMSURI,null,null,null,null)给出具有权限的权限拒绝引起的异常

  26. 26

    权限被拒绝-缺少INTERNET权限?

  27. 27

    Android Runtime权限(权限被拒绝)

  28. 28

    postgresql:权限被拒绝的关系

  29. 29

    Firebase写入权限被拒绝

热门标签

归档