Before 6.0 is the install time permissions model,6.0 after the runtime permissions model is taken.
The latter will show the user the required permissions when installing, and apply for permission when the app is running.
Android divides system privileges into four levels of protection Normal,dangerous,signature,signatureorsystem. The most common is
Normal PermissionAnd
Dangerous PermissionTwo classes.
Normal permission: This type of permission can be assigned by default during app installation
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_NOTIFICATION_POLICY
android.permission.ACCESS_WIFI_STATE
android.permission.ACCESS_WIMAX_STATE
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.CHANGE_WIMAX_STATE
android.permission.DISABLE_KEYGUARD
android.permission.EXPAND_STATUS_BAR
android.permission.FLASHLIGHT
android.permission.GET_ACCOUNTS
android.permission.GET_PACKAGE_SIZE
android.permission.INTERNET
android.permission.KILL_BACKGROUND_PROCESSES
android.permission.MODIFY_AUDIO_SETTINGS
android.permission.NFC
android.permission.READ_SYNC_SETTINGS
android.permission.READ_SYNC_STATS
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.REORDER_TASKS
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SET_TIME_ZONE
android.permission.SET_WALLPAPER
android.permission.SET_WALLPAPER_HINTS
android.permission.SUBSCRIBED_FEEDS_READ
android.permission.TRANSMIT_IR
android.permission.USE_FINGERPRINT
android.permission.VIBRATE
android.permission.WAKE_LOCK
android.permission.WRITE_SYNC_SETTINGS
com.android.alarm.permission.SET_ALARM
com.android.launcher.permission.INSTALL_SHORTCUT
com.android.launcher.permission.UNINSTALL_SHORTCUT
Dangerous Permission: This type of permission must be applied at run time
CALENDAR:READ_CALENDAR;WRITE_CALENDAR
CAMERA:CAMERA
CONTACTS:READ_CONTACTS;WRITE_CONTACTS;GET_ACCOUNTS
LOCATION:ACCESS_FINE_LOCATION;ACCESS_COARSE_LOCATION
MICROPHONE:RECORD_AUDIO
PHONE:READ_PHONE_STATE;CALL_PHONE;READ_CALL_LOG;WRITE_CALL_LOG;ADD_VOICEMAIL;USE_SIP;PROCESS_OUTGOING_CALLS
SENSORS:BODY_SENSORS
SMS:SEND_SMS;RECEIVE_SMS;READ_SMS;RECEIVE_WAP_PUSH;RECEIVE_MMS
STORAGE:READ_EXTERNAL_STORAGE;WRITE_EXTERNAL_STORAGE
The API23 check and request permissions are as follows:
checkselfpermissionAnd
requestpermissions(API23)
The process is:First check whether there is permission, if there is a direct call, if not, then request permission, then the user agreed or refused, the activity's Onrequestpermissionsresult will be callback to notify the result (through the third parameter).
If the user denies permission for the first time, the next timeuse when requestpermissions.Shouldshowrequestpermissionrationale to explain to the user.
third-party framework for permissions: Https://github.com/hotchemi/PermissionsDispatcher
Reference:Android 6.0 permissions: http://www.cnblogs.com/zqlxtt/p/4873831.html bubble online Explanation: http://www.jcodecraeer.com/a/anzhuokaifa/ Androidkaifa/2015/0830/3387.html
From for notes (Wiz)
Android 6.0 new Features: Permissions