Android权限HaloPermission详细使用

  

<强> 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详细使用