在我的应用程序中,为了保存位图以便共享它,我必须向write to external storage请求许可。现在看看下面的代码,每当我调用它时,就会出现警告对话框,但是no permission request appears来自安卓本身。我在日志中看到的只有Let's launch permission request.,如何适当地显示来自Android的权限窗口以获得该权限?谢谢。
@ExperimentalPermissionsApi
@Composable
fun Permission(
permission: String = android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
rationale: String = "This permission is important for this app. Please grant the permission.",
permissionNotAvailableContent: @Composable () -> Unit = { },
content: @Composable () -> Unit = { }
) {
val permissionState = rememberPermissionState(permission)
PermissionRequired(
permissionState = permissionState,
permissionNotGrantedContent = {
Rationale(
text = rationale,
onRequestPermission = {
println("Let's launch permission request.")
permissionState.launchPermissionRequest()
}
)
},
permissionNotAvailableContent = permissionNotAvailableContent,
content = content
)
}
@Composable
private fun Rationale(
text: String,
onRequestPermission: () -> Unit
) {
AlertDialog(
onDismissRequest = { /* Don't */ },
title = {
Text(text = "Permission request")
},
text = {
Text(text)
},
confirmButton = {
Button(onClick = onRequestPermission) {
Text("Ok")
}
}
)
}发布于 2022-05-31 09:28:30
这样就不会有人错过ADM在评论中提到的可能的解决方案。
ADM:解决方案检查是否在清单中添加了权限
https://stackoverflow.com/questions/69763771
复制相似问题