Android6.0动态获取权限

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 {
            // 未授权
        }
    }
}

posted on 2015-12-28 14:54  封起De日子  阅读(384)  评论(0编辑  收藏  举报

导航