maui-permissions

Standardize .NET MAUI runtime permission checks and requests across platforms.

Updated Nov 5, 2025
One-click install
npx skills add https://github.com/mkazimoto/AppMAUICopilot --skill maui-permissions
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: maui-permissions
Source: https://github.com/mkazimoto/AppMAUICopilot/tree/main/.github/skills/maui-permissions
Command: npx skills add https://github.com/mkazimoto/AppMAUICopilot --skill maui-permissions

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

MAUI apps require robust, safe, and user-consented permission handling across Android, iOS, Windows. This guide consolidates patterns to check status, request permissions, and handle rationale and platform nuances, reducing friction and crashes in production apps.

Core Features & Use Cases

  • Check and request runtime permissions using the MAUI Permissions API.
  • Handle PermissionStatus values, rationale flows across Android, iOS, and Windows.
  • Define and use CustomPermissions via BasePlatformPermission for project-specific needs.
  • Provide a DI-friendly service pattern to centralize permission logic and improve testability.

Quick Start

Check the status with Permissions.CheckStatusAsync<T>() before requesting, handle rationale with Permissions.ShouldShowRationale<T>(), and guide users to Settings on denial.

Frequently Asked Questions about maui-permissions

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

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

Implement .NET MAUI runtime permissions by applying an Always-Check-Before-Request pattern using CheckStatusAsync, ShouldShowRationale, and platform-specific manifest declarations to ensure proper prompts and descriptions across Android, iOS, and Windows.

Why do MAUI permission requests crash or fail to prompt in production apps?

MAUI permission requests fail when platform-specific manifest or plist declarations are missing or incomplete. Proper prompts require declaring permissions with accurate descriptions for Android, iOS, and Windows before calling request methods at runtime.

What is the best way to centralize permission logic in a MAUI application?

Centralize MAUI permission logic using a DI-friendly service pattern that encapsulates check and request operations. This improves testability and ensures consistent permission status handling throughout the application.

Can I define custom runtime permissions in .NET MAUI for project-specific needs?

Define custom runtime permissions in .NET MAUI by inheriting from BasePlatformPermission. This supports project-specific requirements and integrates seamlessly with the standard Permissions API for checking status and requesting access.

How do I check permission status before requesting access in a cross-platform MAUI app?

Check permission status in a cross-platform MAUI app using Permissions.CheckStatusAsync<T>(). Evaluating PermissionStatus values before requesting prevents redundant prompts and allows you to handle rationale flows appropriately.