EasyPermission的使用

1.首先需要在工程里集成Easypermission 官方库

implementation 'pub.devrel:easypermissions:1.2.0'

2.重写请求方法(该方法最好写在需要使用权限判断的界面)

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults)
    EasyPermissions.onRequestPermissionsResult(requestCode,permissions,grantResults,this)
}

3.在需要动态加载权限的地方判断是否有该权限 (以打开相机为例    还有一点需要注意点的是kotlin写法中   对于可变变量  传参时需要使用*参数名 的方式传递)

if (EasyPermissions.hasPermissions(context!!,*permiss)){
    openCamera()
}else{
    EasyPermissions.requestPermissions(this@MineFragment,"申请相机权限",1,*permiss)
}

4.请求权限成功或失败的回调(当用户选择禁止后不再询问时 可以在申请失败中做以下操作)

//权限申请失败
override fun onPermissionsDenied(requestCode: Int, perms: MutableList) {
    if (EasyPermissions.somePermissionPermanentlyDenied(this@MineFragment,perms)){
        AppSettingsDialog.Builder(this@MineFragment)
                .setTitle("权限以被禁用")
                .setRationale("如果不打开权限则无法使用相机,请至设置中打开权限")
                .build()
                .show()
    }
}
//权限申请成功
override fun onPermissionsGranted(requestCode: Int, perms: MutableList) {
    openCamera()
}

以上EasyPermission的使用就完成啦。

你可能感兴趣的:(EasyPermission的使用)