# googlesamples/easypermissions

**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/googlesamples-easypermissions).**

9,864 stars · 1,458 forks · Java · Apache-2.0 · archived

## Links

- GitHub: https://github.com/googlesamples/easypermissions
- Homepage: https://firebaseopensource.com/projects/googlesamples/easypermissions/
- awesome-repositories: https://awesome-repositories.com/repository/googlesamples-easypermissions.md

## Description

Easypermissions is a library and wrapper for managing Android runtime permissions. It serves as a tool for requesting access to protected system resources and handling the associated result workflows.

The project provides mechanisms for triggering system-level permission requests and executing specific tasks after permissions are granted. It includes a guided dialog system to direct users to system settings when a permission has been permanently denied.

The library covers permission management, user onboarding, and system settings integration. It handles permission request lifecycles through callback resolution, state tracking, and lifecycle binding for fragments.

## Tags

### Part of an Awesome List

- [Permissions Management](https://awesome-repositories.com/f/awesome-lists/security/permissions-management.md) — Provides a library for handling Android runtime permission requests to ensure system features function without crashing.
- [Permission Workflow Managers](https://awesome-repositories.com/f/awesome-lists/devtools/user-permissions/permission-workflow-managers.md) — Coordinates the sequence of requests and responses for Android permissions and directs users to system settings.
- [Runtime Permissions](https://awesome-repositories.com/f/awesome-lists/devtools/runtime-permissions.md) — Wrapper library to simplify permission logic for Android M+.

### Security & Cryptography

- [Permission Request Workflows](https://awesome-repositories.com/f/security-cryptography/permission-systems/permission-request-workflows.md) — Implements a streamlined flow for requesting, granting, and executing tasks after Android system permissions are approved.
- [Permanent Denial Handling](https://awesome-repositories.com/f/security-cryptography/permission-systems/permanent-denial-handling.md) — Provides a guided dialog system that directs users to system settings when a required permission is permanently denied. ([source](https://github.com/googlesamples/easypermissions#readme))
- [Request State Tracking](https://awesome-repositories.com/f/security-cryptography/permission-systems/permission-request-workflows/observable-request-flows/request-state-tracking.md) — Maintains the current set of pending permissions to resume the request flow after activity recreation.
- [Resolution Callbacks](https://awesome-repositories.com/f/security-cryptography/permission-systems/resolution-callbacks.md) — Provides listeners to execute specific success or failure logic once the system returns a permission decision.

### Development Tools & Productivity

- [Settings Redirection](https://awesome-repositories.com/f/development-tools-productivity/application-settings/settings-redirection.md) — Launches the system application settings page when a user has permanently denied a permission request.
- [Post-Grant Execution](https://awesome-repositories.com/f/development-tools-productivity/task-execution/blocking-task-offloaders/post-response-task-execution/post-grant-execution.md) — Automatically executes specific methods after a user has granted all required system permissions for a request. ([source](https://github.com/googlesamples/easypermissions#readme))

### Mobile Development

- [Fragment-Based Request Proxies](https://awesome-repositories.com/f/mobile-development/fragment-based-request-proxies.md) — Uses hidden fragment components to intercept system callback results and ensure they return to the correct UI component.
- [Permission Onboarding](https://awesome-repositories.com/f/mobile-development/permission-onboarding.md) — Guides users through the process of granting necessary system permissions when first launching an application.
- [System Settings Navigators](https://awesome-repositories.com/f/mobile-development/system-settings-navigators.md) — Directs users to the Android OS settings menu when permissions require manual approval after permanent denial.

### Software Engineering & Architecture

- [Permission State Validation](https://awesome-repositories.com/f/software-engineering-architecture/schema-based-state-validation/cross-state-validation/permission-state-validation.md) — Verifies requested permissions against the Android manifest and current system state before initiating requests.
