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 { } } }可根据用户是否同意分别操作