【发布时间】:2023-01-22 11:09:37
【问题描述】:
我正在使用伴奏库来处理 Jetpack Compose 中的权限。文档中的示例代码没有处理权限的方案,例如检查按钮点击权限。
所以我的场景是我想检查按钮单击的运行时权限,如果权限被授予,则执行所需的工作,或者如果未被授予,则显示快餐栏。但我不知道如何检查权限是否被永久拒绝。
我想要一个类似的行为,比如这个库有https://github.com/Karumi/Dexter
val getImageLauncher = rememberLauncherForActivityResult(
contract = GetContent()
) { uri ->
uri?.let {
viewModel.imagePicked.value = it.toString()
}
}
// Remember Read Storage Permission State
val readStoragePermissionState = rememberPermissionState(
permission = READ_EXTERNAL_STORAGE
) { result ->
if (result) {
getImageLauncher.launch("image/*")
} else {
// How can i check here if permission permanently denied?
coroutineScope.launch {
scaffoldState.snackbarHostState.showSnackbar(
context.getString(R.string.read_storage_denied)
)
}
}
}
这是按钮的代码,当我点击它时我想检查权限
SecondaryOutlineButton(
modifier = Modifier
.fillMaxWidth()
.height(48.dp),
buttonText = stringResource(
id = R.string.upload_image
),
buttonCornerRadius = 8.dp,
) {
readStoragePermissionState.launchPermissionRequest()
}
【问题讨论】:
标签: android kotlin android-jetpack-compose android-permissions