示例:获取读写权限
1、同样需要在清单文件里面配置
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
2、然后再动态申请
//申请权限
public void applyPermission() {
//判断是否已经赋予权限
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
//用户是否上次拒绝权限申请(第二次打开)
if (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.WRITE_CONTACTS)) {
//用户已经拒绝过一次,需要提示用户去设置里面授权
Log.e("AddressBook", "用户上次拒绝权限申请");
} else {
//申请权限,定义数组会一次申请多个权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_CONTACTS, Manifest.permission.READ_CONTACTS}, 100);
}
} else {
Log.e("AddressBook", "还没有赋予权限");
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 100) {
for (int i = 0; i < permissions.length; i++) {
if (grantResults[i] == PERMISSION_GRANTED) {
Log.e("AddressBook", "权限" + permissions[i] + "申请成功");
} else {
Log.e("AddressBook", "权限" + permissions[i] + "申请失败");
}
}
}
}