一、权限分类
由上边提到的SYSTEM_ALERT_WINDOWS ,我们总结一下6.0 的运行时权限分类
1、正常权限
正常权限具有如下的几个特点
对用户隐私没有较大影响或者不会打来安全问题。
安装后就赋予这些权限,不需要显示提醒用户,用户也不能取消这些权限。
正常权限列表
ACCESS_LOCATION_EXTRA_COMMANDS
ACCESS_NETWORK_STATE
ACCESS_NOTIFICATION_POLICY
ACCESS_WIFI_STATE
BLUETOOTH
BLUETOOTH_ADMIN
BROADCAST_STICKY
CHANGE_NETWORK_STATE
CHANGE_WIFI_MULTICAST_STATE
CHANGE_WIFI_STATE
DISABLE_KEYGUARD
EXPAND_STATUS_BAR
GET_PACKAGE_SIZE
INTERNET
KILL_BACKGROUND_PROCESSES
MODIFY_AUDIO_SETTINGS
NFC
READ_SYNC_SETTINGS
READ_SYNC_STATS
RECEIVE_BOOT_COMPLETED
REORDER_TASKS
REQUEST_INSTALL_PACKAGES
SET_TIME_ZONE
SET_WALLPAPER
SET_WALLPAPER_HINTS
TRANSMIT_IR
USE_FINGERPRINT
VIBRATE
WAKE_LOCK
WRITE_SYNC_SETTINGS
SET_ALARM
INSTALL_SHORTCUT
UNINSTALL_SHORTCUT
上述的权限基本设计的是关于网络,蓝牙,时区,快捷方式等方面,只要在Manifest指定了这些权限,就会被授予,并且不能撤销。
2、特殊权限
SYSTEM_ALERT_WINDOW,设置悬浮窗,进行一些黑科技
WRITE_SETTINGS 修改系统设置
这两个权限是需要用户授权的。
关于上面两个特殊权限的授权,做法是使用startActivityForResult启动授权界面来完成。
3、危险权限
危险权限实际上才是运行时权限主要处理的对象,这些权限可能引起隐私问题或者影响其他程序运行。Android中的危险权限可以归为以下几个分组:
CALENDAR
CAMERA
CONTACTS
LOCATION
MICROPHONE
PHONE
SENSORS
SMS
STORAGE
4、特殊权限
例如:
READ_LOGS 第三方厂商用的