簡體   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