是的,可以,使用
RequestMultiplePermissions()
代替 RequestPermission()
。这样,您可以一次请求多个权限,在回调中您将得到 Map<String, Boolean>
,其中权限是键,值被授予/拒绝 Boolean
。
@Composable
fun rememberPermissionLauncher(
onGranted: () -> Unit,
onDenied: () -> Unit,
): PermissionLauncher {
return PermissionLauncher(
rememberLauncherForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { map ->
if (!map.containsValue(false)) {
onGranted()
} else {
onDenied()
}
}
)
}
class PermissionLauncher(
val launcher: ManagedActivityResultLauncher<Array<String>, Map<String, Boolean>>
)
我正在使用
accompanist-permissions
版本0.29.0
。