Android 6.0权限处理(优化)

xiaoxiao2021-02-27  113

在这里推荐一个扔物线的自定义View的教程

https://zhuanlan.zhihu.com/p/27787919

用Kotlin编写的项目发现Dispatcher不能用.. 上次编写的工具类缺陷太大… So…又封装了一个.这次的真的是好多了.

用法 :

需要继承PermissionActivity类单个请求用applyPermission()多个请求用applyPermissionArray()

具体看代码 :

1.单个请求(以相机权限为例)

/** * 单权限申请 * @param callback为回调,检测是否被用户同意或者是否被拒绝以及是否需要授权 * @param int permissionCode 为要申请权限代码 在PermissionConstant中有声明 */ applyPermission(new PermissionCallBack() { @Override public void onCameraPermissionSuccess() { Log.i(TAG, "onCameraPermissionSuccess: "); } @Override public void onCameraPermissionFailure() { Log.i(TAG, "onCameraPermissionFailure: "); } @Override public void onNoNeedPermissionApply() { Log.i(TAG, "onNoNeedPermissionApply: "); } }, PermissionConstant.PERMISSION_CODE_CAMERA);

2.一组权限申请

/** * 组权限申请 * @param callback为回调,检测是否某权限被用户同意或者是否被拒绝以及是否需要授权 * @param String[] permissions 为要申请权限 */ applyPermissionArray(new PermissionCallBack() { @Override public void onGroupPermissionSuccess(String permissionName) { Log.i(TAG, "onGroupPermissionSuccess: " + permissionName); } @Override public void onGroupPermissionFailure(String permissionName) { Log.i(TAG, "onGroupPermissionFailure: " + permissionName); } @Override public void onNoNeedPermissionApply() { Log.i(TAG, "onNoNeedPermissionApply: "); } }, new String[]{Manifest.permission.READ_CALENDAR, Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_CONTACTS});

使用方式 : 暂时只能将代码Copy进项目中,JikPack暂时上传失败

代码地址 : https://github.com/RedWolfChao/RedPermission

注意事项 :

PermissionCallback是一个静态类,所以要重写其中方法的时候不需要全部重写,坏处也是重写方法的时候需要自己选择要重写的方法,选择方式为 :

单个权限 : 重写onNoNeedPermissionApply 以及onXXXSuccess和onXXXFailure一组权限 : 重写onNoNeedPermissionApply 以及onGroupPermissionSuccess和onGroupPermissionSuccess

其它

Android一共有9组24个危险权限需要申请,每组中用户同意一个,其它的也跟带着会被同意 联系人权限

android.permission.WRITE_CONTACTS android.permission.GET_ACCOUNTS android.permission.READ_CONTACTS

电话权限

android.permission.READ_CALL_LOG android.permission.READ_PHONE_STATE android.permission.CALL_PHONE android.permission.WRITE_CALL_LOG android.permission.USE_SIP android.permission.PROCESS_OUTGOING_CALLS com.android.voicemail.permission.ADD_VOICEMAIL

日历权限

android.permission.READ_CALENDAR android.permission.WRITE_CALENDAR

相机权限

android.permission.CAMERA

传感器权限

android.permission.BODY_SENSORS

定位权限

android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION

储存器权限

android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE

麦克风权限

android.permission.RECORD_AUDIO

短信权限

android.permission.READ_SMS android.permission.RECEIVE_WAP_PUSH android.permission.RECEIVE_MMS android.permission.RECEIVE_SMS android.permission.SEND_SMS

具体可看官方文档

https://developer.android.com/reference/android/Manifest.permission_group.html

转载请注明原文地址: https://www.6miu.com/read-15856.html

最新回复(0)