Android - Android6.0下权限的动态申请与清单文件配置

运行时权限:需要动态申请(当用户获得某个组内的某个权限后,自动获得组内其他权限)

权限说明
group:android.permission-group.CONTACTS联系人分组
permission:android.permission.WRITE_CONTACTS写入联系人
permission:android.permission.GET_ACCOUNTS在Accounts Service中访问一个帐户列表
permission:android.permission.READ_CONTACTS读取联系人
group:android.permission-group.PHONE手机相关分组
permission:android.permission.READ_CALL_LOG读取电话日志
permission:android.permission.READ_PHONE_STATE读取手机状态
permission:android.permission.CALL_PHONE拨打电话
permission:android.permission.WRITE_CALL_LOG写入电话日志
permission:android.permission.USE_SIP使用
sippermission:android.permission.PROCESS_OUTGOING_CALLS监听呼出电话
permission:com.android.voicemail.permission.ADD_VOICEMAIL添加语音信箱
group:android.permission-group.CALENDAR日历分组
permission:android.permission.READ_CALENDAR读取日历
permission:android.permission.WRITE_CALENDAR写入日历
group:android.permission-group.CAMERA相机分组
permission:android.permission.CAMERA相机
group:android.permission-group.SENSORS传感器分组
permission:android.permission.BODY_SENSORS身体传感器
group:android.permission-group.LOCATION位置信息分组
permission:android.permission.ACCESS_FINE_LOCATION访问精确位置
permission:android.permission.ACCESS_COARSE_LOCATION访问粗略位置
group:android.permission-group.STORAGE存储分组
permission:android.permission.READ_EXTERNAL_STORAGE读取存储器
permission:android.permission.WRITE_EXTERNAL_STORAGE写入存储区
permission:android.permission.MOUNT_UNMOUNT_FILESYSTEMS在SD卡中创建和删除文件
group:android.permission-group.MICROPHONE多媒体分组
permission:android.permission.RECORD_AUDIO录制音频
group:android.permission-group.SMS短信分组
permission:android.permission.READ_SMS读取短信
permission:android.permission.RECEIVE_WAP_PUSH接收wap推送
permission:android.permission.RECEIVE_MMS接收彩信
permission:android.permission.RECEIVE_SMS接收短信
permission:android.permission.SEND_SMS发送短信
permission:android.permission.READ_CELL_BROADCAST读取电话广播

安装时权限 ----- 清单文件配置

权限说明
INTERNET网络权限
ACCESS_LOCATION_EXTRA_COMMANDS定位权限
ACCESS_NETWORK_STATE网络状态
ACCESS_WIFI_STATEWiFi状态
CHANGE_NETWORK_STATE改变网络状态(开关)
CHANGE_WIFI_MULTICAST_STATE改变WiFi多播状态
CHANGE_WIFI_STATE改变WiFi状态(开关)
ACCESS_NOTIFICATION_POLICY通知显示在状态栏
BLUETOOTH使用蓝牙
BLUETOOTH_ADMIN控制蓝牙开关
BROADCAST_STICKY粘性广播
DISABLE_KEYGUARD改变键盘为不可用
EXPAND_STATUS_BAR允许程序扩展收缩在状态栏
GET_PACKAGE_SIZE获取应用安装包大小
KILL_BACKGROUND_PROCESSES杀死后台进程
MODIFY_AUDIO_SETTINGS改变音频输出设置
NFC近场数据交互
READ_SYNC_STATS读取手机同步状态
READ_SYNC_SETTINGS读取手机同步设置
WRITE_SYNC_SETTINGS修改手机同步设置
RECEIVE_BOOT_COMPLETED监听启动广播
REORDER_TASKS创建新栈
SET_TIME_ZONE允许应用程序设置系统时间区域
SET_WALLPAPER设置壁纸
SET_WALLPAPER_HINTS设置壁纸上的提示信息,个性化语言
TRANSMIT_IR红外发射
USE_FINGERPRINT指纹识别
VIBRATE震动
WAKE_LOCK锁屏
SET_ALARM设置警告提示
INSTALL_SHORTCUT创建快捷方式
UNINSTALL_SHORTCUT删除快捷方式
REQUEST_INSTALL_PACKAGES安装应用程序(允许未知来源,应用内更新),适配8.0需配置

PermissionsDispatcher使用详解:

安装PermissionsDispatcher插件后add依赖:
在这里插入图片描述
在所需的Activity或者Fragment的代码里面右键,选择Generate,然后就可以选择Generate Runtime Permissions…(生成动态权限的生成)或者下面的Add PermissionsDispatcher dependencies(添加PermissionsDispatcher依赖)
在这里插入图片描述
选择所需要的权限,填写@NeedsPermission所注释的方法名。点击Generate,build项目,会生成一个辅助类再在app\build\intermediates\classes\debug目录下,类名为“被注解的Activity的名称+PermissionsDispatcher”在这里插入图片描述
最后,申请权限的时候,调用辅助类的方法(名字从下面可以看出是被@OnPermissionDenied注解的方法加上WithCheck,参数是这个Activity或者Fragment)就行了:在这里插入图片描述

注解必须说明
@RuntimePermissions注解在其内部需要使用运行时权限的Activity或Fragment上
@NeedsPermission注解在需要调用运行时权限的方法上,当用户给予权限时会执行该方法
@OnShowRationale注解在用于向用户解释为什么需要调用该权限的方法上,只有当第一次请求权限被用户拒绝,下次请求权限之前会调用
@OnPermissionDenied注解在当用户拒绝了权限请求时需要调用的方法上
@OnNeverAskAgain注解在当用户选中了授权窗口中的不再询问复选框后并拒绝了权限请求时需要调用的方法,一般可以向用户解释为何申请此权限,并根据实际需求决定是否再次弹出权限请求对话框

权限请求框架GitHub地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值