打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android: requires android.permission.READ

1.最近在SDK6.0开发项目组遇到一个这样的问题:requires Android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()

2.原因:从6.0(api 23)开始, android采用了Runtime permission request, 即在运行时请求权限,而不是在编译的时候,即使在manifest.xml里面添加了权限也要在运行时请求。

   但不是所有的permission都要Runtime request,涉及到资源文件请求时就会用到Runtime request,比如获取位置信息, content provider获取media的情况。

3.解决方法:

a) 首先确认在manefist里面添加了READ_EXTERNAL_STORAGE权限。

        b) 在代码中实现Runtime request:

        

@SuppressLint("NewApi")private void requestReadExternalPermission() {    if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)            != PackageManager.PERMISSION_GRANTED) {        Log.d(TAG, "READ permission IS NOT granted...");                if (shouldShowRequestPermissionRationale(Manifest.permission.READ_EXTERNAL_STORAGE)) {                        Log.d(TAG, "11111111111111");        } else {            // 0 是自己定义的请求coude            requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 0);            Log.d(TAG, "222222222222");        }    } else {        Log.d(TAG, "READ permission is granted...");    }}
    c)处理请求:
    
@Overridepublic void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {    Log.d(TAG, "requestCode=" + requestCode + "; --->" + permissions.toString()            + "; grantResult=" + grantResults.toString());    switch (requestCode) {        case 0: {                        if (grantResults.length > 0                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                // permission was granted                // request successfully, handle you transactions            } else {                // permission denied                // request failed            }                        return;        }        default:            break;    }}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android 6.0蓝牙权限问题
Android权限申请的学习实践
安卓6.0以后调用系统相机权限的动态设置
蓝牙BLE通讯
Android 6.0 运行时权限处理完全解析
适配Android10 拍照,相册,裁剪,上传图片
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服