Skip to content

liu-wanshun/PermissionX

Repository files navigation

PermissionX

jitpack license

一个简单易用的Android 运行时权限请求框架。

Gradle

1. 在项目根目录下的 build.gradle 文件中加入

allprojects {
    repositories {
        maven { url = "https://jitpack.io" }
    }
}

2. 在 app 模块build.gradle添加依赖

dependencies {
    //仅支持AndroidX
    implementation("io.github.liu-wanshun:permissionx:latest_version")
}

用法

1. 权限请求

PermissionX.with(this)
  .permissions(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE)
  .onRequestRationale("授权通过后,方便在聊天中,提供发送手机相册中的媒体内容给对方的能力")
  .request { result ->
      Log.e("ssss", "request   onResult: isAllGranted  ->  ${result.isAllGranted}")
      Log.e("ssss", "request   onResult: Granted -> ${result.getGrantedList()}")
      Log.e("ssss", "request   onResult: Denied  -> ${result.getDeniedList()}")
  }

2.自定义弹框样式

//设置自定义弹框
PermissionX.setRationaleFactory(CustomRationaleFactory())

//取消设置自定义弹框(使用默认弹框)
PermissionX.setRationaleFactory(null)

3.提示

  1. 限制:需要在 FragmentActivity / Fragment 环境中使用。
  2. 建议 FragmentActivity 主题使用AppCompat的Theme,如果没有使用AppCompat的Theme,则可以使用以下2种方式
    1. 重写 style:PermissionDialogTheme 使用AppCompat
    2. 通过 PermissionX.setRationaleFactory(CustomRationaleFactory())自定义弹框
    3. 建议仅在点击时请求权限,禁止在生命周期onCreate,onResume中请求,也尽量避免在onStart中请求

效果演示

请求时效果 永久拒绝时效果

About

Android 动态权限请求

Resources

License

Stars

Watchers

Forks

Packages

No packages published