您的位置:首页 > 移动开发 > Android开发

Android API 23+ 动态权限申请

2016-09-26 17:26 162 查看
final List<String> permissionsList = new ArrayList<>(); //需要申请的权限列表
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){ //判断版本号是否大于23
if ((checkSelfPermission(Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED)) //判断该权限是否获得授权
permissionsList.add(Manifest.permission.READ_PHONE_STATE);

if ((checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED))
permissionsList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);

if (permissionsList.size() == 0){
init(); //初始化
}else{
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_PHONE_PERMISSIONS); //进行权限申请
}
}else{
init();
}


复写回调方法。

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_PHONE_PERMISSIONS:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
init();
} else {
Toast.makeText(this, getString(R.string.need_permission),Toast.LENGTH_SHORT).show();
finish();
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: