您的位置:首页 > 其它

6.0动态申请权限

2018-01-03 14:14 351 查看
/**
* 1.检测系统版本
*/
private void checkSystemVersion() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
checkPermissions();
}

/**
* 待检测权限(6.0需要动态申请的权限)
*/
private String[] permissions = {
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE
};

/**
* 2.检测权限
*/
private void checkPermissions() {
List<String> permissionsList = new ArrayList<>();
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED)
permissionsList.add(permission);
}
if (permissionsList.size() > 0)
requestPermissions(permissionsList);
}

/**
* 申请权限请求码
*/
private int REQUEST_CODE_PERMISSION = 233;

/**
* 3.申请权限
*/
private void requestPermissions(List<String> list) {
ActivityCompat.requestPermissions(this, list.toArray(new String[list.size()]), REQUEST_CODE_PERMISSION);
}

/**
* 4.申请回调
*/
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_CODE_PERMISSION) {
List<String> permissionList = new ArrayList<>();
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] != PackageManager.PERMISSION_GRANTED)
permissionList.add(permissions[i]);
}
if (permissionList.size() > 0)
requestPermissions(permissionList);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: