Der Kern meiner App basiert auf dem Zugriff auf Foto -EXIF -Daten von Bildern. Ich habe die Benutzer um Erlaubnis für read_media_images gebeten, was gut funktioniert, wenn der Benutzer den Zugriff gewährt oder dies leugnet. Ich benutze den folgenden Block, um die Erlaubnis des Benutzers zu erkennen. < /P>
Code: Select all
permissionLauncher.launch(permissionToRequest)
val permissionToRequest = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
Manifest.permission.READ_MEDIA_IMAGES
} else {
Manifest.permission.READ_EXTERNAL_STORAGE
}
val permissionLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.RequestPermission(),
onResult = { isGranted: Boolean ->
if (isGranted) {
imagePickerLauncher.launch("image/*")
}
}
)
Das Problem ist, wenn der Benutzer die dritte Option
-Block mit isGranted = true ausgeführt, das einen anderen Picker ImagePickerlauncher.launch ("Image/*") neu gestartet hat. Wenn der Benutzer den Auswahler entlassen oder nichts ausgewählt und abgeschlossen drücken, dann isgranted = false .
Code: Select all
val imagePickerLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.GetMultipleContents(),
onResult = { uris: List ->
// handle images.
}
)
Ich habe versucht, die Gerätebibliothek zu befolgen. Gibt es eine Möglichkeit, nur 2 Optionen zu präsentieren [/b] oder
, um dies anmutig zu bewältigen ? Es scheint, dass die begrenzte Zugriffsoption einen schrecklichen Fluss verursacht. Es ist nicht klar>