【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 权限申请原理对话框操作回调接口 | 永久拒绝权限后引导设用户置权限 )
2023-06-13 09:17:44 时间
文章目录
一、权限申请原理对话框操作回调接口 RationaleCallbacks
权限申请 对话框操作回调接口 RationaleCallbacks:
① 权限申请原理对话框 ( Rationale Dialog ) : 该对话框的作用是 , 向用户说明为什么本应用要申请该权限 , 用户拒绝权限申请后 , 再次申请会自动弹出该对话框 ;
② 对话框显示内容设置 : 如果用户之前拒绝过所申请的权限 , 再次申请就会自动弹出该对话框 , 对话框内容是如下 requestPermissions 方法的第三个参数 String rationale 的内容 ;
/**
* 申请一组权限, 如果系统要求 ( 用户之前拒绝过 ) , 显示 权限申请原理对话框 ,
* 向用户表明申请该权限的原因 .
*
* @param host 上下文对象 , 一般是 Activity.
* @param rationale 解释为什么申请改组权限的原因的信息;
* 这些信息会在用户第一次拒绝权限申请后显示在 权限申请原理对话框 中.
* @param requestCode 追踪本次权限申请的申请码 , 必须小于 256.
* @param perms 本次申请的权限 , 这是一个可变参数 .
* @see Manifest.permission
*/
public static void requestPermissions(
@NonNull Activity host, @NonNull String rationale,
int requestCode, @Size(min = 1) @NonNull String... perms) {
requestPermissions(
new PermissionRequest.Builder(host, requestCode, perms)
.setRationale(rationale)
.build());
}
① 接口方法 :
/**
* 权限申请原理对话框处理
*/
public interface RationaleCallbacks {
// 用户点击确定键 , 开始申请权限
void onRationaleAccepted(int requestCode);
// 用户拒绝 , 界面消失
void onRationaleDenied(int requestCode);
}
二、永久拒绝权限后引导设用户置权限
永久拒绝操作 : 如果用户在权限申请时 , 选择了 “拒绝 , 不要再询问” , 这是永久拒绝了应用的权限申请 , 如下图 ;
此时就 无法在应用中申请权限了 , 只能手动引导用户前往应用设置界面 , 自行开启权限 ;
此时可以调用 pub.devrel.easypermissions.AppSettingsDialog 对话框 , 该对话框的作用是引导用户前往设置界面 , 自行为应用授权 ; 如果用户点击确定后会跳转到 设置 中的 应用信息 界面 , 在该界面中 , 用户可以在 权限 选项中 , 手动为应用授权 ;
如果用户仍选择 取消 选项 , 此时直接退出界面即可 , 最好是提示下用户 , 拒绝后的后果 ;
相关文章
- android onresume方法,非静态方法’onResume’Android Studio
- Google 正式发布 Android 13,已发布至 AOSP
- android+制作开机动画,Android 开机动画制作详解
- android图片资源加密,Android平台图像文件加密
- 常见Android面试题及答案(详细整理)
- android_activity_启动模式
- android sdk manager安装,Android SDK Manager安装过程
- android declare-styleable 和style,Android 关于declare-styleable属性的写法….
- android定时器取消,Android定时器崩溃取消
- Android Q Beta 3 亮相 Google I/O'19
- 安装Android Studio并创建一个Android Demo
- 在Android系统上运行frp
- 【错误记录】Android Studio 编译时 lint 检查报错 ( WARNING: DSL element ‘android.dataBinding.enabled‘ is obsolet )
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- [android] 与PHP的session进行交互demo详解手机开发
- 解析android中系统日期时间的获取
- 如何在android中使用html作布局文件
- Android中各级目录的作用说明