Обратный вызов не получен при обработке разрешения с помощью RememberLauncherForActivityResult() с контрактом ActivityResultContracts.RequestPermission()

Пользовательский интерфейс системного запроса запускается, но результат не отправляется в программу запуска.

Может ли кто-нибудь объяснить мне, что я делаю неправильно в фрагменте кода, и указать мне правильный способ запустить это.

      val launcher = rememberLauncherForActivityResult(
    contract = ActivityResultContracts.RequestPermission(),
    onResult = { isGranted ->
        if(isGranted) {
            onPermissionGranted()
        } else {
            onPermissionDenied()
        }
    }
)
val permissionState = rememberPermissionState(permission = permission)

    when(permissionState.hasPermission) {
        true -> {
            onPermissionGranted()
        }
        false -> {
            if(permissionState.shouldShowRationale) {
                SideEffect {
                    launcher.launch(permission)
                }
            } else {
                // show snackbar
            }
        }
    }

0 ответов