zoukankan      html  css  js  c++  java
  • permissionsdispatcher的用法(用起来并没有多好用)

    10k star的动态权限申请框架

    优势:全面支持Kotlin和Java

       使用注解

       100%无反射

          支持特殊权限,例如WRITE_SETTINGS,SYSTEM_ALERT_WINDOW等

    用法:

    可以使用ktx或者kapt或者Java

    以下以kapt为例子,添加依赖

     //permission
        def permission_version = "4.7.0"
        implementation "org.permissionsdispatcher:permissionsdispatcher:${permission_version}"
        kapt "org.permissionsdispatcher:permissionsdispatcher-processor:${permission_version}"

    在你要申请的类里进行操作:

    首先这个类用到了动态权限就需要添加RuntimePermissions注解


    @RuntimePermissions
    class MainActivity : AppCompatActivity() {}

    申請的权限还是需要在Manifest文件注册

    Add the following line to AndroidManifest.xml:
    
    <uses-permission android:name="android.permission.CAMERA" />

    在需要使用相机的方法添加@NeedPermission注解,如下:

    
    
    @NeedsPermission(Manifest.permission.CAMERA)
    fun initFaceCamera() {

    }
     

    拒绝权限的提示

        @OnPermissionDenied(Manifest.permission.CAMERA)
        void showDenied() {
            Toast.makeText(MainActivity.this, "无法获得权限", Toast.LENGTH_SHORT).show();
        }

    这里还没结束,还要生成委托MainActivityPermissionsDispatcher,可以Make Project一下,生成文件的路径为

    appuildgeneratedsourcekaptdebug对应类路径

    在OnCreate或者合适的地方调用

     initFaceCameraWithPermissionCheck()  

    此方法就是在MainActivityPermissionsDispatcher中的,由框架生成的@NeedsPermission注解的initFaceCamera()的代理方法

     同时还需在OnRequesetPermissionsResult里调用上面图中的onRequestPermissionsResult方法

        override fun onRequestPermissionsResult(
            requestCode: Int,
            permissions: Array<out String>,
            grantResults: IntArray
        ) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults)
            onRequestPermissionsResult(requestCode, grantResults)
         }

    至此才能正确处理相机动态权限,如果是Java应该需要用类名.方法名调用

    相比Rxpermissions没有更简单,相比EasyPermissions也没有更清楚,如果你使用kotlinx或者kapt可以采取这种方法

  • 相关阅读:
    验证foreach 能否操做更改原表
    asp.net post/get 公共方法
    C# json日期转换
    学数学
    2742: [HEOI2012]Akai的数学作业
    BZOJ2208
    树状数组求逆序对
    网络流复习计划
    SG函数学(hua)习(shui)记录
    SPLAY板子
  • 原文地址:https://www.cnblogs.com/yjpjy/p/13035629.html
Copyright © 2011-2022 走看看