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.