如果你的APP运行在Android 6.0 (API level 23)或者更高级别的设备中,而且targetSdkVersion>=23时,系统将会自动采用动态权限管理策略,如果你在操作时没有申请权限权限而直接调用了相关代码,那么你的App可能就崩溃了。
需要注意这些:
- 此类权限也必须在Manifest申明,否则申请时不提示用户,直接回调开发者权限被拒绝。
- 同一个权限组的任何一个权限被授权了,这个权限组的其他权限也自动被授权。例如一旦WRITE_CONTACTS被授权了,App也有READ_CONTACTS和GET_ACCOUNTS了。
下面列举一些Android7.0需要在运行时申请的权限
CALENDAR(日历)
READ_CALENDAR
WRITE_CALENDARCAMERA(相机)
CAMERACONTACTS(联系人)
READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTSLOCATION(位置)
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATIONMICROPHONE(麦克风)
RECORD_AUDIOPHONE(手机)
READ_PHONE_STATE
CALL_PHONE
READ_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLSSENSORS(传感器)
BODY_SENSORSSMS(短信)
SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
RECEIVE_MMSSTORAGE(存储卡)
READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE