首页 > 代码库 > 运行时权限

运行时权限

在fragment或者activity中的onCreate()方法中判断。

if(Build.VERSION.SDK_INT>=23){
            //①checkSelfPermission 检查当前应用的权限
            if(ActivityCompat.checkSelfPermission(getContext(),
                    Manifest.permission.READ_EXTERNAL_STORAGE)== PermissionChecker.PERMISSION_DENIED){
                //②PERMISSION_DENIED说明没有权限需要手动申请
//                requestPermissions 请求权限的方法
                //第一个参数 activity
                //第二个参数 需要请求的权限的 权限String数组
                //第三个参数 请求码 用来区分不同的权限请求
                //需要注意 最后一个参数 requestCode需要>0
                ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);
                return;
            }
        }
requestPermissions()方法是异步的,不知道什么时候用户什么时候点击完,用户点击完授权,下面是回调方法
@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        //③用户操作授权之后 会走这个回调方法 onRequestPermissionsResult
        if(grantResults[0]== PermissionChecker.PERMISSION_GRANTED){
          //  initData();
            VBangFragment fragment = (VBangFragment) fragments.get(R.id.tab_vbang);
            fragment.initData();
        }else{
            ToastUtils.showToast(getApplicationContext(),"没有sd卡权限,无法获取音乐信息");
        }
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }

 

运行时权限