Media Picker (Android): Docs say CAMERA is required, but Intent-based capture doesn’t need it
- Dominant language
- No language data
- Stars
- 282
- Forks
- 265
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 19
Description
### Type of issue
Other (describe below)
### Description
Hi docs team,
The Media Picker page states that android.permission.CAMERA is required on Android. But MediaPicker.CapturePhotoAsync() opens the system camera via Intent (android.media.action.IMAGE_CAPTURE). Android’s own docs say that apps invoking the camera app via Intent do not need the CAMERA permission.
Why this is risky
Adds an unnecessary permission prompt → poorer UX.
Causes Google Play filtering (back camera + autofocus implied) unless features are explicitly set to required="false".
What the code & docs show
MAUI Android implementation is Intent-based (no Camera/Camera2):
https://github.com/dotnet/maui/blob/main/src/Essentials/src/MediaPicker/MediaPicker.android.cs
The same docs page already shows adding a package-visibility query for IMAGE_CAPTURE, which only applies when launching another app via Intent:
https://learn.microsoft.com/dotnet/maui/platform-integration/device-media/picker?view=net-maui-9.0
What Android says
Camera Intents (use Intent for basic capture):
https://developer.android.com/media/camera/camera-intents
Camera API note (no CAMERA needed when invoking the camera app):
https://developer.android.com/media/camera/camera-deprecated/camera-api
Suggested fixes
Change wording from “required” to:
“On Android, MediaPicker.CapturePhotoAsync launches the system camera via Intent. This doesn’t require android.permission.CAMERA. If you embed an in-app camera (Camera2/CameraX) elsewhere, then declare/request CAMERA.”
If you still mention CAMERA for historical reasons, add a bold note to prevent Play filtering:
Keep the queries example for IMAGE_CAPTURE (Android 11+ package visibility), since the flow is Intent-based.
Thanks!
### Page URL
https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/device-media/picker?view=net-maui-9.0&tabs=android
### Content source URL
https://github.com/dotnet/docs-maui/blob/main/docs/platform-integration/device-media/picker.md
### Document Version Independent Id
1e5277f4-f2e4-dffe-0c08-06531d4145a1
### Platform Id
27207929-eaa2-6859-b3f3-4f8a3728d85f
### Article author
@davidortinau
### Metadata
* ID: 1e5277f4-f2e4-dffe-0c08-06531d4145a1
* PlatformId: 27207929-eaa2-6859-b3f3-4f8a3728d85f
* Service: **dotnet-mobile**
* Sub-service: **dotnet-maui**
[Related Issues](https://github.com/dotnet/docs-maui/issues?q=is%3Aissue+is%3Aopen+1e5277f4-f2e4-dffe-0c08-06531d4145a1)
Contributor guide
Assessment
This issue has not been assessed yet.