Skip to content

Media Picker (Android): Docs say CAMERA is required, but Intent-based capture doesn’t need it #3076

@shimiGF

Description

@shimiGF

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions