# permissions-dispatcher/PermissionsDispatcher

A declarative API to handle Android runtime permissions.

Repository: https://github.com/permissions-dispatcher/PermissionsDispatcher
Canonical: https://ross.abutalabs.com/products/permissionsdispatcher
Homepage: https://github.com/permissions-dispatcher/PermissionsDispatcher
Language: Java
License: Apache-2.0
License Family: permissive
Topics: android, kotlin, java, permissions, permission-android, permissions-android, permission
Last push: 2023-11-10T04:44:43+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4036, "days_push": 1027, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 11158, forks 1431 (observed 2026-08-28T04:10:46.264749+00:00)

## What it is
PermissionsDispatcher is an annotation-based library for handling Android runtime permissions in Kotlin and Java. It generates boilerplate-free permission-checking code at compile time, with full support for rationale, denial, and 'never ask again' flows.

## Use cases
- handle android runtime permissions without boilerplate
- request camera permission in an activity
- show a rationale dialog before asking for permissions
- handle denied and never-ask-again permission states
- use runtime permissions in a fragment with kotlin
- avoid reflection when checking permission grants

## When to choose
- you want a mature, reflection-free, annotation-processor-based permission library for Android
- you need both Kotlin and Java support in the same codebase
- you need fine-grained callbacks for rationale, denial, and never-ask-again flows

## When to avoid
- you are starting a new project and prefer the modern Jetpack ActivityResult API
- your project does not use annotation processing (kapt/apt)
- you need permissions handling outside Android activities or fragments

## Facets
- artifact type: library
- maturity: maintenance
- function: auth, middleware, developer-tools
- domain: mobile-development, android-tools, developer-tools
- platform: jvm
- tags: android-runtime-permissions, annotation-processor, kotlin-annotations, declarative-api, reflection-free, android

## Member repositories
- permissions-dispatcher/PermissionsDispatcher (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:46.264749+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:16:44.605396+00:00, confidence not recorded.
  - readme: https://github.com/permissions-dispatcher/PermissionsDispatcher (fetched 2026-08-28T04:10:46.264749+00:00, sha 7db41f23acee)
  - homepage: https://github.com/permissions-dispatcher/PermissionsDispatcher (fetched 2026-08-29T08:15:12.313147+00:00, sha a8b4d1a9d94b)
- Data as of 2026-08-30T08:39:29.467469+00:00.
