【发布时间】:2023-02-09 05:35:37
【问题描述】:
我正在使用 Jetpack Compose,当我调用用相机拍照的方法时,ActivityResultContracts.TakePicture 的结果始终为 false。
示例代码:
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun SomeScreen() {
val photoUri by remember { mutableStateOf(value = Uri.EMPTY) }
val cameraLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.TakePicture(),
onResult = { success ->
if (success) {
println("success")
println("photo uri: $photoUri")
} else println("result failed")
}
)
val cameraPermissionState = rememberPermissionState(
permission = Manifest.permission.CAMERA,
onPermissionResult = { granted ->
if (granted) cameraLauncher.launch(photoUri)
else print("camera permission is denied")
}
)
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(onClick = cameraPermissionState::launchPermissionRequest) {
Text(text = "Take a photo with Camera")
}
}
}
我使用 accompanist-permissions 库来简化它,打开相机应用程序并拍照的部分显然工作正常,但 cameraLauncher 的结果总是错误的......
谁能指导我解决这个问题?
【问题讨论】:
标签: kotlin android-jetpack-compose android-camera