<强> 1。常规使用强>
请求一个权限,然后接收结果回调
Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) .setListener(对象:PermissionListener { 覆盖乐趣> HoloPermission.with (Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE) 。{省略代码}//或 val权限:Array=劳动力素质(" "," ") HoloPermission.with(这一点,*权限) 。{省略代码} >之前 只关心权限被允许(未被允许)的回调
Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) .setGrandAction(对象:GrandAction { 覆盖乐趣> Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) 。{省略回调设置代码} .setRationaleRender(“为了确保功能的正常使用,请允许接下来的权限请求申请。”) .run ()如果你想自定义RationaleRender的样式,比如:
Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) 。{省略回调设置代码} .setRationaleRender(对象:RationaleRender { 覆盖娱乐节目(ctx:上下文,允许:List,过程:RationaleRender.Process) {//自定义使用了一个“土司”展示信息。 Toast.makeText (ctx,“为了确保功能的正常使用,请允许接下来的权限请求申请。”,Toast.LENGTH_SHORT),告诉()//* *为了确保后续的流程继续执行,你需要在适当的时候调用过程的“onNext”或“虚”方法* * process.onNext ()//onNext()表示继续后面的执行//虚会取消流程的执行,并且会最终回调onPermissionDenied方法 } }) .run () >之前 关于此回调的触发说明:
<李>如果应用之前请求过该权限,被用户拒绝,这个方法回回调。李> <李>如果用户之前拒绝权限的时候勾选了对话框中再次“不问不说”的选项,那么这个方法不会回调李> <李>如果设备策略禁止应用拥有这条权限,这个方法也不会回调李>
<强> 3。SettingRender使用强>
如果你想向用户解释请求权限的原因,你可以使用setRationaleRender方法
Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) 。{省略回调设置代码} .setSettingRender(“无法使用外部存储,请设置权限以便使用。”) .run ()如果你想自定义SettingRender的样式,比如:
Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) 。{省略回调设置代码} .setSettingRender(对象:SettingRender { 覆盖娱乐节目(ctx:上下文,允许:List,过程:SettingRender.Process) {//自定义使用了一个“土司”展示信息。 Toast.makeText (ctx,“无法使用外部存储,请设置权限以便使用。”,Toast.LENGTH_SHORT),告诉()//* *为了确保后续的流程继续执行,你需要在适当的时候调用过程的“onNext”或“虚”方法* * process.onNext ()//onNext()表示继续后面的执行,HaloPermission将打开系统应用权限设置界面//虚会取消流程的执行,不会打开系统应用权限设置界面,最终会回调onPermissionDenied方法 } }) .run () >之前 如果你觉得HaloPermission打开的权限设置界面不是您所满意的,你可以重写SettingRender的getCustomSettingIntent方法提供一个意图,如果返回零则将使用HaloPermission的默认方式打开:
Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) 。{省略回调设置代码} .setSettingRender(对象:SettingRender { 覆盖娱乐节目(ctx:上下文,允许:List,过程:SettingRender.Process) { {省略的代码} }//自定义SettingIntent 覆盖有趣getCustomSettingIntent (ctx:上下文):目的# 63;{ 返回super.getCustomSettingIntent (ctx) } }) .run () >之前 <强> 4。自定义权限校验规则强>
两步即可实现
//1。创建自定义PermissionChecker 类CustomChecker: PermissionChecker { 覆盖有趣isPermissionGranted (ctx:上下文,允许:String):布尔{ {使用你的规则} } }//2。使用自定义规则 Manifest.permission.WRITE_EXTERNAL_STORAGE HoloPermission.with(这) 。{省略常规代码} .run (CustomChecker ())Android权限HaloPermission详细使用