# permissions-dispatcher/permissionsdispatcher

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/permissions-dispatcher-permissionsdispatcher).**

11,177 stars · 1,433 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/permissions-dispatcher/PermissionsDispatcher
- Homepage: https://github.com/permissions-dispatcher/PermissionsDispatcher
- awesome-repositories: https://awesome-repositories.com/repository/permissions-dispatcher-permissionsdispatcher.md

## Description

PermissionsDispatcher is a declarative Android API and runtime permission manager. It provides a structured system for requesting and verifying system permissions while separating authorization logic from general business code.

The project focuses on managing the permission request workflow, which includes justifying requests with custom explanations and handling user responses to system prompts. It also functions as a system settings guide, directing users to the manual Android settings menu for special permissions that require approval outside of the application.

## Tags

### Part of an Awesome List

- [Permission Justifications](https://awesome-repositories.com/f/awesome-lists/devtools/runtime-permissions/permission-justifications.md) — Shows custom explanations to users before triggering system prompts to increase permission approval likelihood.
- [Permission Workflow Managers](https://awesome-repositories.com/f/awesome-lists/devtools/user-permissions/permission-workflow-managers.md) — Coordinates application logic based on user responses to system access requests.
- [Runtime Permissions](https://awesome-repositories.com/f/awesome-lists/devtools/runtime-permissions.md) — Annotation-based API for managing runtime permission requests.

### Mobile Development

- [System Settings Routing](https://awesome-repositories.com/f/mobile-development/android-app-navigation/system-settings-routing.md) — Guides users to the manual system settings menu for permissions that cannot be granted in-app.
- [Android System API Wrappers](https://awesome-repositories.com/f/mobile-development/android-system-api-wrappers.md) — Offers a structured, declarative API for managing device access levels instead of manual conditional checks.
- [Permission Rationale Providers](https://awesome-repositories.com/f/mobile-development/permission-rationale-providers.md) — Provides a system for showing custom explanations to users before triggering system prompts to increase approval rates. ([source](https://github.com/permissions-dispatcher/permissionsdispatcher#readme))
- [System Intent Handlers](https://awesome-repositories.com/f/mobile-development/system-intent-handlers.md) — Utilizes Android system intents to direct users toward the manual settings menu for permission overrides.
- [System Settings Navigators](https://awesome-repositories.com/f/mobile-development/system-settings-navigators.md) — Directs users to the system settings menu when a permission requires manual approval outside of the application. ([source](https://github.com/permissions-dispatcher/permissionsdispatcher#readme))
- [Settings Navigation Wrappers](https://awesome-repositories.com/f/mobile-development/android-system-api-wrappers/settings-navigation-wrappers.md) — Provides a mechanism for directing users to the Android system settings menu for manual permission approval.
- [Permission Request Queues](https://awesome-repositories.com/f/mobile-development/permission-request-queues.md) — Queues permission requests behind a justification layer to ensure users see a rationale before the system prompt.
- [Permission Response Handlers](https://awesome-repositories.com/f/mobile-development/permission-response-handlers.md) — Implements registered listener functions to trigger logic based on the outcome of system permission requests.

### Security & Cryptography

- [Permission Request Workflows](https://awesome-repositories.com/f/security-cryptography/permission-systems/permission-request-workflows.md) — Manages the entire workflow of justifying permission requests and handling system prompt responses.
- [Permission Response Workflows](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/access-control-models/permission-response-workflows.md) — Executes specific application logic based on whether the user accepts, rejects, or permanently denies system access. ([source](https://github.com/permissions-dispatcher/permissionsdispatcher#readme))

### Software Engineering & Architecture

- [Declarative State Managers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/state-management-patterns/declarative-state-managers.md) — Uses a declarative state management pattern to map permission requests to specific UI flows and verification checks.
- [Permission State Validation](https://awesome-repositories.com/f/software-engineering-architecture/schema-based-state-validation/cross-state-validation/permission-state-validation.md) — Checks current permission levels against a target state to determine if a request or redirect is necessary.
