From 484dc11f2c8f21a0f9a5984e74713f7c29ff014b Mon Sep 17 00:00:00 2001 From: Gijsbert ter Horst Date: Thu, 19 Jan 2023 12:01:51 +0100 Subject: [PATCH] Bypass non-existent permission check In Android 13+ android.permission.WRITE_EXTERNAL_STORAGE no longer exists, and requesting it always returns `Denied`. AFAIK it is not needed for the media capture in this Android version either, though I may be wrong. --- src/Essentials/src/MediaPicker/MediaPicker.android.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Essentials/src/MediaPicker/MediaPicker.android.cs b/src/Essentials/src/MediaPicker/MediaPicker.android.cs index 408f65e28589..81affe6b3345 100644 --- a/src/Essentials/src/MediaPicker/MediaPicker.android.cs +++ b/src/Essentials/src/MediaPicker/MediaPicker.android.cs @@ -62,7 +62,10 @@ public async Task CaptureAsync(MediaPickerOptions options, bool phot throw new FeatureNotSupportedException(); await Permissions.EnsureGrantedAsync(); - await Permissions.EnsureGrantedAsync(); + // StorageWrite no longer exists starting from Android API 33 + if (!OperatingSystem.IsAndroidVersionAtLeast(33)) + await Permissions.EnsureGrantedAsync(); + var capturePhotoIntent = new Intent(photo ? MediaStore.ActionImageCapture : MediaStore.ActionVideoCapture);