1.清单文件中
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
2.compose组件内
val permissionArray = arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
@Composable
fun Page(
navController: NavController) {
var isGetPermission = rememberSaveable {
false
}
val launcher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.RequestMultiplePermissions()
) {
if (it.values.reduce { acc, b -> acc && b }) {
// Permission granted, do something
isGetPermission = true
} else {
// Permission denied, handle accordingly
}
}
LaunchedEffect(Unit) {
if (permissionArray.all {
ContextCompat.checkSelfPermission(
myViewModel.getApplication(),
it
) == PackageManager.PERMISSION_GRANTED
}
) {
} else {
launcher.launch(permissionArray)
}
}
if (isGetPermission) {
Text(text = "text", modifier = Modifier.clickable {
})
}
}