maui-permissions

Check and request runtime permissions in .NET MAUI apps across platforms.

Updated Dec 25, 2025
One-click install
npx skills add https://github.com/heldercsousa/MyVocaList --skill maui-permissions-heldercsousa
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: maui-permissions
Source: https://github.com/heldercsousa/MyVocaList/tree/main/.claude/skills/maui-permissions
Command: npx skills add https://github.com/heldercsousa/MyVocaList --skill maui-permissions-heldercsousa

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

MAUI developers often struggle with implementing runtime permissions consistently across platforms. This Skill provides a comprehensive approach to check and request permissions, handle all PermissionStatus outcomes, and structure custom permissions via BasePlatformPermission, while aligning with platform-specific manifest and plist requirements and enabling DI-friendly service patterns.

Core Features & Use Cases

  • Check and request runtime permissions using the MAUI Permissions API for cross-platform consistency.
  • Handle all PermissionStatus values (Unknown, Denied, Granted, Restricted, Limited, Disabled) and implement best-practice pre-checks and rationale flows.
  • Define custom permissions by extending BasePlatformPermission for Android and other platforms.
  • Ensure platform declarations: AndroidManifest.xml and Info.plist entries.
  • Provide a DI-friendly service pattern to centralize permission management in apps.

Quick Start

Invoke the permission flow before accessing a protected feature and handle every possible status to ensure a smooth user experience.

Frequently Asked Questions about maui-permissions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I request runtime permissions in .NET MAUI across Android and iOS?

To request runtime permissions in .NET MAUI, use the cross-platform Permissions API to check status and prompt users. You must also declare required permissions in AndroidManifest.xml and Info.plist to ensure platform-level access is granted correctly.

What's the best way to handle PermissionStatus values like Denied or Restricted in MAUI?

Handling PermissionStatus values requires checking each outcome individually before accessing features. You should implement pre-checks, show rationale prompts for Denied status, and provide resilient fallback behavior for Restricted, Limited, or Disabled states in your MAUI application.

How do I create custom permissions in MAUI using BasePlatformPermission?

Creating custom permissions in MAUI involves extending the BasePlatformPermission class to define platform-specific requirements. This allows you to encapsulate unique Android manifest declarations or iOS plist entries within a reusable cross-platform permission structure.

Can I use a dependency injection service to manage MAUI runtime permissions?

Yes, you can centralize MAUI runtime permissions using a DI-friendly service pattern. This approach injects a single permission management service into your view models, ensuring consistent pre-checks, rationale flows, and status handling across the entire application.

Why does my MAUI app crash when accessing camera or location without checking permissions?

Accessing protected features without checking runtime permissions causes crashes because the underlying platform denies access. You must invoke the MAUI permission flow beforehand and handle all PermissionStatus outcomes to ensure a smooth and safe user experience.