diff --git a/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java b/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java index d2a52ac46..5498e394b 100644 --- a/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java +++ b/camera/android/src/main/java/com/capacitorjs/plugins/camera/CameraPlugin.java @@ -347,6 +347,15 @@ private ActivityResultLauncher registerActivityResultLauncher( private ActivityResultContract> getContractForCall(final PluginCall call) { int limit = call.getInt("limit", 0); + + // Ensure limit does not exceed system max limit + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + int maxLimit = MediaStore.getPickImagesMaxLimit(); + if (limit > maxLimit) { + limit = maxLimit; // Restrict to allowed limit + } + } + if (limit > 1) { return new ActivityResultContracts.PickMultipleVisualMedia(limit); } else {