Android6.0权限

权限处理逻辑

1.弹出系统申请

2.点击拒绝

        1)出现(不再提醒选项)并继续申请

        2)如果自定义弹框(解释申请权限),点击拒绝,还可弹出自定义弹框进行申请

3.点击不再提醒并拒绝,需要手动设置


原生权限方法代码

//检查是否授予了所需要的权限(当返回DENIED就需要进行申请授权了)

ContextCompat.checkSelfPermission(this,Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED

//请求授权

ActivityCompat.requestPermissions(this,newString[]{Manifest.permission.READ_CONTACTS},code);

//权限回调处理

Android6.0权限_第1张图片
权限回调

6.0以上需要动态申请的危险权限

Android6.0权限_第2张图片
危险权限

PermissionsDispatcher简单使用

一、添加注解和权限逻辑

1.@RuntimePermissions// 在activity或fragment上添加

2.@NeedsPermission注解,标注在你要获取权限的方法,请求权限成功时执行的代码片段

Android6.0权限_第3张图片
.@NeedsPermission

3.@OnShowRationale注解,用于解释申请的权限(非必须),拦截请求,告诉用户该请求是做什么的

    proceed()让权限请求继续,cancel()让请求中断

Android6.0权限_第4张图片
@OnShowRationale

4.@OnPermissionDenied注解,用户点击拒绝时执行(未勾选不再询问时),可用于解释(拒绝就不能xxx)或重新申请

@OnPermissionDenied

5.@OnNeverAskAgain注解,用户拒绝并且点击不再询问,可用于提醒用户手动开启

(注意,有些系统的不再询问勾选项是要用户拒绝授权一次才显示出来的)

Android6.0权限_第5张图片
@OnNeverAskAgain

二、生成辅助类Dispatcher

Android6.0权限_第6张图片
dispatcher回调
Android6.0权限_第7张图片
需要请求权限的地方调用dispatcher.request

原生代码进行定位

Android6.0权限_第8张图片
原生定位

你可能感兴趣的:(Android6.0权限)