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

Android6.0动态获取权限

2015-12-28 14:54 441 查看

Android 6.0动态获取权限

Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测

以下权限都需要在运行时判断:

身体传感器

日历

摄像头

通讯录

地理位置

麦克风

电话

短信

存储空间

效果图

Android 6.0添加动态获取权限



Android 6.0没有动态获取权限



动态获取权限

每次在用到摄像头等,这样需要权限的操作的时候,都要动态判断一下权限

// 扫描功能
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
//申请CAMERA权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 3);
} else {
Intent openCameraIntent = new Intent(this, CaptureActivity.class);
startActivityForResult(openCameraIntent, 0);
}


如果没有权限,会弹窗提示用户,由用户来决定,是否给予该权限

用户选择完以后,会执行下面的回调

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (3 == requestCode) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 授权
Intent openCameraIntent = new Intent(this, CaptureActivity.class);
startActivityForResult(openCameraIntent, 0);
} else {
// 未授权
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息