The Android Photo Picker is a system dialog that lets apps access specific photos and videos without granting them permission to see your entire media library. You choose which items an app can use, and the picker runs in a secure, isolated process that the requesting app cannot tamper with or bypass. This article explains how the Photo Picker works, how it differs from older storage permissions, and what it means for your privacy.
Background: Why Android Needed a Photo Picker
Before the Photo Picker, Android apps that needed images typically requested the READ_EXTERNAL_STORAGE permission (or on older versions, READ_EXTERNAL_STORAGE with broad access). Once granted, an app could read every photo and video on your device, including screenshots, downloads, and images from other apps. This was a privacy problem: a simple photo-editing app could scan your entire library, and you had no way to limit it to just the pictures you wanted to share.
Google introduced the Photo Picker as part of Android 13 (API 33) and later backported it to older versions through Google Play services updates. It is now the recommended way for apps to request media, and it works on Android 11 and higher when the app uses the AndroidX Photo Picker library.
How the Photo Picker Works
When an app calls the Photo Picker, the system opens a full-screen or dialog interface showing your photos and videos. You can browse, search, and select one or more items. After you confirm your selection, the app receives only the URIs (content:// links) for the items you chose. The app never gets a path to your storage or a list of other files.
Key technical details:
- Isolated process: The picker runs in a separate, sandboxed process with no access to your app data or the requesting app’s data.
- No broad permission: The requesting app does not need READ_EXTERNAL_STORAGE or READ_MEDIA_IMAGES permissions. It only needs the ActivityResultContracts.PickVisualMedia contract.
- URI grants: The system grants temporary read access to the selected URIs, which expires when your app process is killed or after a system-defined period.
- Cloud media support: On Android 13+, the picker can show photos from cloud services (like Google Photos) if the user has them linked, so you can share photos that aren’t stored locally.
What the Photo Picker Protects
The main protection is that apps can no longer silently scan your entire library. You are in control of exactly which photos and videos are shared. This reduces the risk of:
- Apps collecting metadata (like location or device info) from all your photos.
- Apps uploading your entire library to their servers without your knowledge.
- Malicious apps exploiting broad storage permissions to read sensitive images (IDs, documents, etc.).
It also protects your privacy from other apps on your device: the picker does not reveal filenames, folder names, or the total number of media items to the requesting app.
How to Use the Photo Picker
As a user, you don’t need to do anything special. When an app wants to access media, it will launch the picker automatically. You will see a familiar grid of your photos and videos. You can:
- Tap to select one item, or tap and hold to enter multi-select mode.
- Use the search bar to find a specific photo.
- Switch between the “Photos” and “Albums” tabs.
- Tap the cloud icon to access cloud photos (if available).
After you tap “Done” or “Add,” the app receives only your selection. If you change your mind later, you can revoke access by going to Settings > Apps > [App name] > Permissions and removing the “Photos and videos” permission (if shown). Note that the picker itself does not create a persistent permission entry; it grants a one-time or temporary access.
Common Problems and Misconceptions
Misconception: The Photo Picker is the same as the old “Grant access to all photos” prompt. That prompt is for apps that need READ_MEDIA_IMAGES permission (for apps that legitimately need continuous access, like a gallery app). The Photo Picker is a separate, one-time selection interface.
Problem: I can’t find the Photo Picker on my device. If you’re on Android 11 or 12, the Photo Picker may not be available unless your device has received the Google Play services update. Also, some OEMs (like Samsung) may have their own gallery picker that appears instead of the system Photo Picker. In that case, the app is using a different mechanism, but it still typically requires you to select specific items.
Problem: An app asks for storage permission even though it uses the picker. Some apps still request legacy permissions for other features (like saving files). You can deny the storage permission and still use the picker for selecting media.
Problem: The picker doesn’t show all my photos. The picker shows media indexed by the system’s MediaStore. If a photo is in a hidden folder or has a corrupted file, it may not appear. Also, cloud photos only appear if you’ve linked the cloud service.
Comparison: Photo Picker vs. Storage Permissions
| Feature | Photo Picker | READ_MEDIA_IMAGES / READ_EXTERNAL_STORAGE |
|---|---|---|
| User selects specific items | Yes | No (all or nothing) |
| App can scan library | No | Yes |
| Requires runtime permission | No | Yes |
| Access persists | Temporary (per selection) | Until revoked |
| Works on Android 11+ | Yes (via backport) | Yes |
For most apps, the Photo Picker is the better choice for user privacy. Apps that need continuous access to a specific set of media (like a photo backup app) can request the READ_MEDIA_IMAGES permission, but they must also implement the picker for initial selection.
Frequently Asked Questions
Does the Photo Picker work on all Android versions?
The Photo Picker is available on Android 13 and higher natively. On Android 11 and 12, it is available through a Google Play services update, but only if the app uses the AndroidX library. Some devices may not have received the update, so the app might fall back to a custom picker.
Can an app see my photos after I select one?
No. The app receives only the URI for the selected photo(s). It cannot see other files, and it cannot access the URI after the temporary grant expires (usually after the app is closed or after a system-defined period).
Why does the Photo Picker show my cloud photos?
On Android 13+, the picker integrates with cloud media providers (like Google Photos) that have been linked to your device. This allows you to share photos that are not stored locally. The requesting app still only gets the URI for the selected cloud photo, and it may need special permissions to access the cloud content.
Is the Photo Picker secure?
Yes. It runs in a separate, sandboxed process with no access to your app data or the requesting app’s data. The system mediates all access, and the requesting app cannot modify the picker UI or intercept your selections.
Can I use the Photo Picker to select videos?
Yes. The Photo Picker supports both images and videos. You can filter by type (e.g., only images or only videos) using the PickVisualMedia contract, but the default shows both.
What if an app doesn’t use the Photo Picker?
If an app uses the old storage permission, you will see a system dialog asking for access to “Photos and videos” or “All files.” You can deny it, but the app may not function fully. You can also limit access to selected photos by choosing “Select photos” in the permission dialog (on Android 14+).
Related
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.
More cards in this drawer
- Campus Tech Innovation Hubs: What They Are
- Poco C51 Airtel Prepaid Locked Variant India?
- Jenkins vs GitHub Actions: Which CI/CD Fits Your Team?
- Turn Off Backup Encryption in iTunes?
- Shared VPS Hosting: Is It Better?
- Disk Defrag Pro: What It Does and Whether You Need It