Androidstudio动态授权

使用系统的授权功能

比方我现在申请CAMERA权限

1.在manifest里面添加这个权限

<uses-permission android:name="android.permission.CAMERA"/>

2.检测此权限是否已申请并回调结果

public void requestAllPower() {
    if (ContextCompat.checkSelfPermission(this,
            Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                Manifest.permission.CAMERA)) {
        } else {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.CAMERA}, 1);
        }
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == 1) {
        for (int i = 0; i < permissions.length; i++) {
            if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
                Log.i("test_model","权限" + permissions[i] + "申请成功");
                Toast.makeText(this, "" + "权限" + permissions[i] + "申请成功", Toast.LENGTH_SHORT).show();
                TestPermissionActivity.this.finish();
            } else {
                Log.i("test_model","权限" + permissions[i] + "申请失败");
                Toast.makeText(this, "" + "权限" + permissions[i] + "申请失败", Toast.LENGTH_SHORT).show();
                TestPermissionActivity.this.finish();
            }
        }
    }
}

3.直接调用requestAllPower()该方法即可

猜你喜欢

转载自blog.csdn.net/lovelixue/article/details/81668783