Android动态获取权限

操作步骤

android6.0以上版本需要动态获取权限

1. AndroidManifest.xml文件添加权限

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

2.Activity类OnCreate下添加代码
以读取手机状态信息的权限为例子

if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions((Activity)context, new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
}

ContextCompat.checkSelfPermission
– 第一个参数是Context
– 第二个参数是具体的权限名
返回值跟PackageManager.PERMISSION_GRANTED比较想等则说明已经授权

requestPermissions
– 第一个参数是Activity实例
– 第二参数是一个String数组,具体的权限名
– 第三个参数是请求码只要是唯一值就可以,该值可以用到后面的onRequestPermissionsResult回调中
3.重载onRequestPermissionsResult,无论用户是同意还是拒绝权限申请的请求,最终都会回调该函数

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode){
        case 1:
            if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
            } else {
            }
    }
}

可根据用户是否同意分别操作

    原文作者:WowBanyan
    原文地址: https://blog.csdn.net/mur1985/article/details/81475635
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞