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

Android6.0动态申请权限

2017-12-19 14:20 357 查看
group:android.permission-group.CONTACTS
permission:android.permission.WRITE_CONTACTS
permission:android.permission.GET_ACCOUNTS
permission:android.permission.READ_CONTACTS

group:android.permission-group.PHONE
permission:android.permission.READ_CALL_LOG
permission:android.permission.READ_PHONE_STATE
permission:android.permission.CALL_PHONE
permission:android.permission.WRITE_CALL_LOG
permission:android.permission.USE_SIP
permission:android.permission.PROCESS_OUTGOING_CALLS
permission:com.android.voicemail.permission.ADD_VOICEMAIL

group:android.permission-group.CALENDAR
permission:android.permission.READ_CALENDAR
permission:android.permission.WRITE_CALENDAR

group:android.permission-group.CAMERA
permission:android.permission.CAMERA

group:android.permission-group.SENSORS
permission:android.permission.BODY_SENSORS

group:android.permission-group.LOCATION
permission:android.permission.ACCESS_FINE_LOCATION
permission:android.permission.ACCESS_COARSE_LOCATION

group:android.permission-group.STORAGE
permission:android.permission.READ_EXTERNAL_STORAGE
permission:android.permission.WRITE_EXTERNAL_STORAGE

group:android.permission-group.MICROPHONE
permission:android.permission.RECORD_AUDIO

group:android.permission-group.SMS
permission:android.permission.READ_SMS
permission:android.permission.RECEIVE_WAP_PUSH
permission:android.permission.RECEIVE_MMS
permission:android.permission.RECEIVE_SMS
permission:android.permission.SEND_SMS
permission:android.permission.READ_CELL_BROADCASTS
在方法内添加申请权限方法
@Overrideprotected void onResume() {super.onResume();//请求权限requestPermission();// ……}
申请权限方法
 public void requestPermission(){//需要权限列表String[] permissions = new String[]{Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO,Manifest.permission.WRITE_EXTERNAL_STORAGE};//权限待申请列表List<String> permissionLst = new ArrayList<String>();for (String permission : permissions) {//权限检测如果未允许,添加至待申请列表if (ContextCompat.checkSelfPermission(this, permission)!= PackageManager.PERMISSION_GRANTED) {permissionLst.add(permission);}}//如果待申请列表有需要申请的权限开始申请if(permissionLst.size()>0) {String[] requestPermissions = new String[]{};ActivityCompat.requestPermissions(this, permissionLst.toArray(requestPermissions), 1000);}}
请求权限回调方法
@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);//回调请求码if(requestCode==1000){//所有申请的权限for (String permission : permissions){Logger.e("permission:"+permission);}//所有权限状态for (int grantResult : grantResults){if(grantResult == PackageManager.PERMISSION_GRANTED){//申请成功,被允许Logger.e("grantResult:"+true);}else{//申请失败,被拒绝Logger.e("grantResult:"+false);break;}}}}
//跳转至设置页面
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);intent.setData(Uri.parse("package:" + getPackageName()));startActivity(intent);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android android开发