Android Permissions
目录
Permissions(还在写)
对于
Permission
, 我们做Android
开发用的很频繁, 但是我写这篇文章之前我其实一直对什么情况下究竟应该请求什么权限只能靠猜, 我需要系统总结! 于是有了这篇文章
权限简介
建议: Manifest.permission | Android Developers (google.cn)
毕竟我下面写的肯定是有时效性的, 建议去看看官网
权限作为应用开发者我们只需要了解正常权限和危险权限, 正常权限只需要我们在debug
时遇到错误或者IDE
标黄提示的时候添加进去就完事了(但往往国内各种定制ROM还会有自己的特殊限制, 如MIUI
中对剪切板读写权限的限制), 而我们重点需要了解下方的主要的危险权限:
危险权限组 | 权限 |
---|---|
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 |
SENSORS 传感器 | BODY_SENSORS |
SMS 短信 | SEND_SMS RECEIVE_SMS READ_SMS RECEIVE_WAP_PUSH RECEIVE_MMS |
STORAGE 储存 | READ_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE |
在Android 6.0
(SDK23)及之后的Android
版本, 开发者需要手动请求这些权限, 且只要权限组中任意一个权限取得, 则整个权限组的权限均会获得.
合理使用
事实上在很多情况下, 我们都不应该请求任何危险权限. 而应该使用intent
唤醒具有权限的应用(如系统自带应用)来执行操作
功能 | Intent |
---|---|
拍摄照片 | ACTION_IMAGE_CAPTURE |
录制视频 | ACTION_VIDEO_CAPTURE |
打开其他应用的媒体或文档 | ACTION_CREATE_DOCUMENT ACTION_OPEN_DOCUMENT ACTION_OPEN_DOCUMENT_TREE |
而上面的这些其实也是不必要的, Activity Results API
可以帮助我们高效简单的完成这些操作. 详见:Activity Results 总结和封装 - 可爱怪的窝