Android6.0动态权限申请

转自:https://blog.csdn.net/lhp15575865420/article/details/79210696

在Android6.0之前只需在AndroidManfiest.xml文件写明权限即可。但是在Android6.0之后也就是SDK>=23时,一些隐私权限需要动态申请,而且在用户同意授权之后APP才能拥有该权限。

如下9组权限需要动态申请。而且一组权限只要一个授权授权同意,全组都可用。

  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

动态权限总共有三个方法:

ContextCompat.checkSelfPermission() 检查权限是否已经授权

ActivityCompat.requestPermissions() 动态申请权限,并弹出对话框

onRequestPermissionResult() 在Activity里面重写该犯法是权限申请之后的回调方法。

当然,动态权限申请也要在AndroidManifest.xml里面写明。

Android6.0动态权限申请_第1张图片

如果有多项权限需要动态申请。那么只需要把权限写入permission数组即可。下面也给出修改后的代码

Android6.0动态权限申请_第2张图片

你可能感兴趣的:(android)