Android6.0申请动态权限(API23)

1.需要用户手动赋予的权限( Dangerous Permissions)
所属权限组   权限
日历  READ_CALENDAR
日历  WRITE_CALENDAR
相机  CAMERA
联系人 READ_CONTACTS
联系人 WRITE_CONTACTS
联系人 GET_ACCOUNTS
位置  ACCESS_FINE_LOCATION
位置  ACCESS_COARSE_LOCATION
麦克风 RECORD_AUDIO
电话  READ_PHONE_STATE
电话  CALL_PHONE
电话  READ_CALL_LOG
电话  WRITE_CALL_LOG
电话  ADD_VOICEMAIL
电话  USE_SIP
电话  PROCESS_OUTGOING_CALLS
传感器 BODY_SENSORS
短信  SEND_SMS
短信  RECEIVE_SMS
短信  READ_SMS
短信  RECEIVE_WAP_PUSH
短信  RECEIVE_MMS
存储  READ_EXTERNAL_STORAGE
存储  WRITE_EXTERNAL_STORAGE

2.动态获取权限,其余权限获取类似

在AndroidManifest.xml中添加



Java代码:

    private void requestPermission() {
        if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
            } else {
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
                                Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
            }
        }
    }

权限回调:

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == 1) {
            if (grantResults[0] == PERMISSION_GRANTED && grantResults[1] == PERMISSION_GRANTED) {
                Log.e(TAG, "onRequestPermissionsResult: " + "权限" + permissions[0] + "," + permissions[1] + "申请成功");
            } else {
                Log.e(TAG, "onRequestPermissionsResult: " + "权限" + permissions[0] + "," + permissions[1] + "申请失败");
            }
        }
    }

你可能感兴趣的:(Android6.0申请动态权限(API23))