喷气背包伴奏者中的 launchPermissionRequest() 什么都不做

launchPermissionRequest() in jetpack accompanist does nothing

在我的应用程序中,我必须请求 write to external storage 的许可才能保存位图以便能够共享它。现在看看下面的代码,每当我调用它时,都会出现警告对话框,但 no permission request appears 来自 Android 本身。我在日志中只能看到 Let's launch permission request. 如何适当地显示 Android 的权限 window 以获得该权限?谢谢。

@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")
            }
        }
    )
}

只是为了让大家不要错过评论中 ADM 提到的可能的解决方案。

ADM解决方案:检查是否在manifest中添加了权限