android6.0以上动态申请权限问题。

来源:互联网 发布:国产单片机品牌 编辑:程序博客网 时间:2024/05/17 22:01
android升级到6.0以后,一些敏感权限不仅仅需要在清单文件中配置权限,还需要在程序运行时动态的申请。请求权限代码
//判断是否需要动态申请权限,即系统是否是6.0以上if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){            int permissionCheck = ContextCompat.checkSelfPermission(this,                    Manifest.permission.READ_CONTACTS);            if(permissionCheck!= PackageManager.PERMISSION_GRANTED){                //请求权限,可以请求多个权限,写在第二个参数的String[]数组里,第三个参数是个请求码                ActivityCompat.requestPermissions(this,                        new String[]{Manifest.permission.READ_CONTACTS},                        REQUEST_READ_CONTACTS);            }        }
然后需要重写onRequestPermissionsResult()方法
 @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        switch (requestCode) {            case REQUEST_READ_CONTACTS: {                // If request is cancelled, the result arrays are empty.                if (grantResults.length > 0                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {                    //TODO 权限申请成功后要做的事情                    // permission was granted, yay! Do the                    // contacts-related task you need to do.                } else {                    //TODO 权限申请失败后要做的事情                    // permission denied, boo! Disable the                    // functionality that depends on this permission.                }                return;            }            // other 'case' lines to check for other            // permissions this app might request        }    }

如果是多个权限的话需要循环判断

详情见官方文档,需梯子

运行时请求权限

0 0
原创粉丝点击