Mobile Native: Decouple Camera Access from Photo/Media Library Permissions and Add Android Photo Picker Support

I posted this on the idea board Suggest a Feature on the Bubble Ideaboard | Bubble last evening given our current issues approval on the Google Play store due to photo/media library permissions no compliance. Additionally there is another forum ( Google Play rejection due to READ_MEDIA_IMAGES / READ_MEDIA_VIDEO - #14 by aj13 ) Below is my idea board post, wondering if anyone has already found a good work around for this?

Description / Proposal
In Bubble’s native mobile builder, camera and photo library permissions are treated as separate toggles and workflows, yet remain functionally linked in the build system. If photo library access is disabled, the camera workflow fails, preventing any use of the mobile native camera.

This coupling now causes Google Play policy conflicts. As of Android 13+, Google strictly limits READ_MEDIA_IMAGES and READ_MEDIA_VIDEO permissions to apps whose core functionality requires broad, persistent access to a user’s entire media library, such as:
• Photo gallery or manager apps
• Photo/video editors handling multiple files
• Cloud backup apps that continuously sync user media
• Media analysis or indexing tools (face clustering, tagging, etc.)

Apps that only need limited, user-initiated image capture (for example, proof-of-delivery, ID verification, or profile photos) are now disallowed from declaring these permissions. Since Bubble’s camera implementation automatically includes them, such apps are rejected during Play Store review, even though their photo use is legitimate and minimal.

This issue prevents many business and logistics apps built on Bubble from publishing or updating on Google Play and could eventually impact iOS as privacy rules tighten.

Suggested Solution

  1. Decouple camera and photo library permissions.
    Allow developers to enable the camera independently without triggering READ_MEDIA_IMAGES or READ_MEDIA_VIDEO.
  2. Add native support for the Android Photo Picker API.
    This would let apps request a single, user-selected photo or video without requiring broad read access, aligning Bubble with Google’s modern compliance standards.
  3. Enable platform-specific permission control.
    Let developers configure Android and iOS permissions separately, ensuring flexibility and future compliance.

Why This Matters

Without this separation, many Bubble-built apps must remove essential camera features just to comply with Play Store policies. Supporting decoupled permissions and the Android Photo Picker will allow developers to maintain compliant, functional apps that capture or select photos securely, without risking rejection from Google Play.

This change is essential for the long-term viability of Bubble’s mobile native platform and ensures continued support for delivery, field-service, and verification workflows that rely on safe, user-controlled media capture.

You’ve summarized the issue perfectly this is becoming a serious blocker for many mobile apps built on Bubble.

The problem sits in how Bubble packages its native runtime. When the camera workflow is called, it still bundles READ MEDIA IMAGES / READ MEDIA VIDEO even if the app only captures photos through the camera. Google Play’s policy now flags that as “broad media access,” which triggers automatic rejection.

At the moment, there’s no official workaround inside Bubble’s native builder. A few developers have managed temporary fixes by:

  • Using webview camera uploads through HTML input (which triggers Android’s scoped photo picker), bypassing Bubble’s native permission set.

  • Or exporting the app and manually editing the AndroidManifest.xml to remove media-read permissions though this breaks when you rebuild inside Bubble.

The real solution must come from Bubble: decoupling camera from photo library permissions and adopting the Android Photo Picker API, just like you proposed.

Until then, the cleanest path is to handle camera uploads via webview workflows or custom native wrappers (Bdk or Jasonelle) that give full control over permissions.

Your post is on point. it needs visibility so Bubble prioritizes this update.