繁体   English   中英

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

[英]launchPermissionRequest() in jetpack accompanist does nothing

在我的应用程序中,我必须请求write to external storage的权限才能保存位图以便共享它。 现在看下面的代码,每当我调用它时,都会出现警报对话框,但 Android 本身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")
            }
        }
    )
}

只是为了没有人错过 ADM 在评论中提到的可能的解决方案。

ADM 的解决方案:检查您是否在清单中添加了权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM