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 {
            }
    }
}

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值