- 根据最新的谷歌权限流程进行的开发,暂时不支持“不再询问”的回调区分,用户点击不再询问与单次的拒绝,都走denied{},这里请注意
- 目前只支持 androidx.activity.ComponentActivity和其子类,如果你用的是AppCompatActivity和FragmentActivity也可以继续往下看
- 有任何问题都可提,我都会尽快解决或反馈
implementation 'io.github.leeigithub:permissionflow:0.0.2'
<!-- 在AndroidManifest.xml里添加你需要的权限 -->
<uses-permission android:name="android.permission.CAMERA" />
class PermissionTestActivity : AppCompatActivity() {
//必须在Activity.onStart()之前初始化,每个activity/fragment有一个就行了
val permissionFlow = PermissionFlow(this)
}
permissionFlow
.withPermission(Manifest.permission.CAMERA)
.showRationale { callback ->
//最好给出需要权限的理由,也可以什么都不做
callback.continueRequest(true)//如果false,则不会向请求权限
}
.denied {
//用户拒绝了权限,或者是不再询问。这里再次提醒,目前暂不支持“不再询问”的区分
}
.execute {
//打开相机
startCamera()
}
//多权限
permissionFlow
.withPermissionByUiFeedbackCreator(
arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.CAMERA
)
)
...
.denied { permissionList->
//被拒绝的权限集合
}