Как запросить разрешения с Jetpack Compose? - PullRequest
0 голосов
/ 09 марта 2020

Как следует реализовать запрос разрешения от Jetpack Compose View? Я пытаюсь реализовать доступ приложения к камере с помощью Jetpack Compose. Я попробовал пример из Как получить Текущее состояние или контекст в Jetpack Compose К сожалению, пример больше не работает с dev06.

        fun hasPermissions(context: Context) = PERMISSIONS_REQUIRED.all {
            ContextCompat.checkSelfPermission(context, it) == PackageManager.PERMISSION_GRANTED
        }
    }
}

1 Ответ

0 голосов
/ 10 марта 2020
private const val PERMISSIONS_REQUEST_CODE = 10
private val PERMISSIONS_REQUIRED = arrayOf(Manifest.permission.CAMERA)

@Composable
fun PermissionButton() {

    val context = ContextAmbient.current

    Button(onClick = {
        if (!hasPermissions(context)) {
            requestPermissions(
                context as Activity,
                PERMISSIONS_REQUIRED,
                PERMISSIONS_REQUEST_CODE
            )
        }
    }
    ) {}
}

fun hasPermissions(context: Context) = PERMISSIONS_REQUIRED.all {
    ContextCompat.checkSelfPermission(context, it) == PackageManager.PERMISSION_GRANTED
}
...