Xamarin.Essentials Permissions: Manifest Declaration Boundary for Runtime Requests
0 reputation · 04 Jan 2026, 12:10 UTC
Xamarin.Essentials Permissions: Manifest Declaration Boundary
The goal is to request a runtime permission through Xamarin.Essentials and confirm that the underlying platform grant decision depends on a prior manifest or plist declaration. The uncertainty is where the boundary lies between the API call and platform configuration, especially when targeting different Android API levels and iOS versions.
RequestAsync does not inject declarations into AndroidManifest.xml or Info.plist. On Android, dangerous permissions require runtime requests starting at API level 23, while normal permissions are granted at install time. On iOS, usage description keys must exist or the system may deny access. The PermissionStatus values Granted, Denied, Disabled, and Unknown do not by themselves indicate whether a manifest entry is missing.
Does a missing AndroidManifest permission declaration cause RequestAsync to throw, return Denied, or behave differently by target SDK version? Which Info.plist usage description keys are mandatory for each Xamarin.Essentials permission before the first runtime prompt? Can RequestAsync re-prompt after denial on iOS within the same session, or is the denial persistent?