Android 4.3
Application Operations 出现
Android 4.4
Api支持获取App Ops实例
1 | Context.getSystemService(Context.APP_OPS_SERVICE) |
Android 6.0
1.
2.
Android 系统权限分为正常权限和危险权限
权限名称 | 权限说明 |
ACCESS_LOCATION_EXTRA_COMMANDS | 允许应用程序访问额外的位置提供命令 |
ACCESS_NETWORK_STATE | 允许程序访问有关网络的信息 |
ACCESS_NOTIFICATION_POLICY | 为应用标记希望访问通知策略的权限 |
ACCESS_WIFI_STATE | 允许应用程序访问Wi-Fi网络的信息 |
BLUETOOTH | 允许应用程序连接到已配对的蓝牙设备 |
BLUETOOTH_ADMIN | 允许应用程序发现和配对蓝牙设备 |
BROADCAST_STICKY | 允许应用程序使用粘性广播,广播数据由系统完成并保持,客户端可以快速地检索数据,而不用等待下一个广播 |
CHANGE_NETWORK_STATE | 允许程序修改网络连接状态 |
CHANGE_WIFI_MULTICAST_STATE | 允许程序进入多播状态 |
CHANGE_WIFI_STATE | 允许程序修改Wifi连接状态 |
DISABLE_KEYGUARD | 允许程序禁用键盘锁 |
EXPAND_STATUS_BAR | 允许一个程序扩展收缩在状态栏 |
GET_PACKAGE_SIZE | 允许一个程序获取任何package占用空间容量 |
INTERNET | 允许程序打开网络套接字 |
KILL_BACKGROUND_PROCESSES | 允许程序调用killBackgroundProcesses(String) 方法结束后台进程 |
MODIFY_AUDIO_SETTINGS | 允许程序修改全局音频设置 |
NFC | 允许程序执行NFC近距离通讯操作,用于移动支持 |
READ_SYNC_SETTINGS | 允许程序读取同步设置 |
READ_SYNC_STATS | 允许程序读取同步状态 |
RECEIVE_BOOT_COMPLETED | 允许一个程序接收到 ACTION_BOOT_COMPLETED广播在系统完成启动 |
REORDER_TASKS | 允许程序改变Z轴排列任务 |
INSTALL_PACKAGES | 允许程序安装应用 |
SET_ALARM | 设置闹铃提醒 |
SET_TIME_ZONE | 设置系统时区 |
SET_WALLPAPER | 设置桌面壁纸 |
SET_WALLPAPER_HINTS | 设置壁纸建议 |
VIBRATE | 允许访问振动设备 |
WAKE_LOCK | 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 |
WRITE_SYNC_SETTINGS | 写入Google在线同步设置 |
权限名组 | 权限 | 权限说明 |
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 |
|
PackageManager.PERMISSION_GRANTED = 0 表示通过
PackageManager.PERMISSION_DENIED = 0 表示未通过
v4包下的三个函数用于替换activity的三个对应函数
ContextCompat.checkSelfPermission(),无论在哪个版本,该函数都会返回PERMISSION_GRANTED 或者 PERMISSION_DENIED
ActivityCompat.requestPermissions()在6.0以前版本调用,则OnRequestPermissionsResultCallback will be suddenly called with correct PERMISSION_GRANTED or PERMISSION_DENIED result.
ActivityCompat.shouldShowRequestPermissionRationale()在6.0之前一直返回 flase
>=Android6.0 的终极方案
时序图结构更改为
目前整套流程稳定服务于项目场景。
介于篇幅,还有很多的知识来不及与大家分享,喜欢Android开发的同学,可以点击这里免费获取《Android开发核心知识点笔记》研读,祝愿大家的技术都越来越成熟。
除此之外,我也分享一些免费的优质资源,包括:Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。
或者是想解决面试难题,也可以点击:
谢谢大家的喜欢~