# permission_handler_android 14.1.1

Permission plugin for Flutter. This plugin provides the Android API to request and check permissions.




## Installing
```
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.com
flutter pub add permission_handler_android
```
Published: 2026-10-28T08:43:45.341071Z
Expected archive SHA-256: baf93fbf80008c240b2cf5e6d62e9495ea7727fe327444d135c44bfff9af6b6e

Available in cache; verification: upstream_checksum
## Direct dependencies
- flutter: map[sdk:flutter]
- permission_handler_platform_interface: ^4.4.0

## Package README (untrusted upstream documentation)
# permission_handler_android

[![pub package](https://img.shields.io/pub/v/permission_handler_android.svg)](https://pub.dartlang.org/packages/permission_handler_android) ![Build status](https://github.com/Baseflow/flutter-permission-handler/workflows/permission_handler_android/badge.svg?branch=master) [![style: flutter lints](https://img.shields.io/badge/style-flutter_lints-40c4ff.svg)](https://pub.dev/packages/flutter_lints)

The official Android implementation of the [permission_handler](https://pub.dev/packages/permission_handler) plugin by [Baseflow](https://baseflow.com).

## Usage

Since version 9.1.0 of the [permission_handler](https://pub.dev/packages/permission_handler) plugin this is the endorsed Android implementation. This means it will automatically be added to your dependencies when you depend on `permission_handler: ^9.1.0` in your applications pubspec.yaml.

More detailed instructions on using the API can be found in the [README.md](../permission_handler/README.md) of the [permission_handler](https://pub.dev/packages/permission_handler) package.

## Issues

Please file any issues, bugs, or feature requests as an issue on our [GitHub](https://github.com/Baseflow/flutter-permission-handler/issues) page. Commercial support is available, you can contact us at <hello@baseflow.com>.

## Want to contribute

If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug, or adding a cool new feature), please carefully review our [contribution guide](../CONTRIBUTING.md) and send us your [pull request](https://github.com/Baseflow/flutter-permission-handler/pulls).

## Author

This permission_handler plugin for Flutter is developed by [Baseflow](https://baseflow.com).

## Changelog
## 14.1.1

- Fixes Bluetooth scan, connect, and advertise permissions falling back to location when their manifest declaration is missing on Android 12+ for apps targeting Android 12+. These permissions now report denied; legacy location fallback is preserved for older target SDKs.

## 14.1.0

- Fixes `Permission.status` reporting `permanentlyDenied` after the user reset a permanently denied permission to "Ask every time" in the Android app settings (Android 11+). See [#1206](https://github.com/Baseflow/flutter-permission-handler/issues/1206).
- **Behavior change:** on Android, `Permission.status` no longer resolves to `permanentlyDenied`. Android does not expose the difference between a permission that was never requested, one reset to "Ask every time" and one that is permanently denied. Only the result of `Permission.request()` can be `permanentlyDenied`; requesting a permanently denied permission resolves immediately without showing a dialog.
- A second denial is now detected from the change of `shouldShowRequestPermissionRationale` across the request, so it is reported as `permanentlyDenied` even when the first denial happened in the app settings.
- Dismissing the very first request dialog is reported as `denied` again instead of `permanentlyDenied`.

## 14.0.0

- **BREAKING CHANGES:** When updating to version 14.0.0 make sure to also set the `compileSdkVersion` in the `app/build.gradle` file to `37`.
- Updates Android `compileSdkVersion: 35` to `37`
- Bump compileSDK version to 37

## 13.0.2

- Added support for the new Android 17 permission `ACCESS_LOCAL_NETWORK`

## 13.0.1

- fix: Resolve `PermissionRequestInProgressException` when app is relaunched with non-standard launchMode.

## 13.0.0

- **BREAKING CHANGES:** When updating to version 13.0.0 make sure to also set the `compileSdkVersion` in the `app/build.gradle` file to `35`.
- Updates Android `compileSdkVersion: 33` to `35`
- Updates Android `com.android.tools.build:gradle:8.0.0` to `com.android.tools.build:gradle:8.0.2`
- Updates Android `sourceCompatibility = JavaVersion.VERSION_1_8` to `sourceCompatibility = JavaVersion.VERSION_17`


## 12.1.0

- Updates the package to correctly support Flutter 3.29.
- Migrates away from deprecated imperative Gradle plugins.


## 12.0.13

- Updates the Android min SDK to 19 (from 16).
- Migrates example app away from deprecated imperative apply in gradle (see: https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply).

## 12.0.12

- Fixes permission status returned from `Permission.photos.request()` or `Permission.videos.request()` when limited access selected

## 12.0.11

- Adds `TargetApi` annotation to `getManifestNames` method in `PermissionUtils.java`.

## 12.0.10

- Fixes a bug that causes a `NullPointerException` when the application is restarted after being killed by Android during the request of special permissions (like, `Permission.ignoreBatteryOptimizations`, `Permission.systemAlertWindow`, `Permission.accessNotificationPolicy`, `Permission.scheduleExactAlarm` and `Permission.manageExternalStorage`).

## 12.0.9

- Makes the status returned when requesting the READ_MEDIA_VISUAL_USER_SELECTED permission more accurate.

## 12.0.8

- Adds support for limited photo and video permission on Android.

## 12.0.7

- Removes additional Android v1 embedding class reference.

## 12.0.6

- Removes deprecated support for Android V1 embedding as support will be removed from Flutter (see [flutter/flutter#144726](https://github.com/flutter/flutter/pull/144726)).

## 12.0.5

- Upgrades Gradle and Android Gradle plugin.

## 12.0.4

- Returns `granted` on permission `Permission.scheduleExactAlarm` for devices running lower than Android S (API 31), before this change the default return was `denied`.
- Updates `minSdkVersion` version to `flutter.minSdkVersion`.

## 12.0.3

- Updates the dependency on `permission_handler_platform_interface` to version 4.1.0 (SiriKit support is only available for iOS or macOS).

## 12.0.2

- Fixes bug where Android activity is leaked when embedded in native Android application.

## 12.0.1

- Fixes a bug where the `ignoreBatteryOptimizations` permission didn't report the correct status when the permission is requested and granted.

## 12.0.0

- **BREAKING CHANGES:**
  - Adds `Permission.calendarWriteOnly`.
  - Removes `Permission.calendarReadOnly`.

## 11.1.0

- Implements the `Permission.calendarReadOnly` and `PermissionCalendarFullAccess` permissions.

## 11.0.5

- Removes the obsolete `updatePermissionShouldShowStatus` method from the Java code base.
- Fixes some analysis warnings in the Java code base.

## 11.0.4

- Fixes a bug where the status of special permissions would incorrectly be reported as `denied`.

## 11.0.3

- Fixes a bug where `Permission.notification.status` would never return `permanentlyDenied` on Android.

## 11.0.2

- Fixes a bug where `Permission.Phone` would always return 'denied' when requesting the permission status.
- Fixes a bug where Flutter permissions that require multiple Android permissions would base their status on the status of the first Android permission, as opposed to the result of all relevant Android permissions.

## 11.0.1

- Fixes `java.lang.IllegalStateException: Reply already submitted` when requesting post notification permission.

## 11.0.0

- **BREAKING CHANGE:** Fixes a bug where the permission status would return 'denied' regardless of whether the status was 'denied' or 'permanently denied'.

## 10.3.6

- Fixes a bug where requesting multiple permissions would crash the app if at least one of the permissions was a [special permission](https://developer.android.com/guide/topics/permissions/overview#special).

## 10.3.5

- Fixes a bug where `Permission.ScheduleExactAlarm` was not opening the settings
  screen.

## 10.3.4

- Fixes a bug where the permission status would return 'permanently denied'
  instead of 'denied' when the user dismisses the permission dialog.

## 10.3.3

- Migrates the Gradle compile arguments to the example app, so they are not enforced upon consumers of the plugin.

## 10.3.2

- Updates example app to show `Permission.photos` and hide `Permission.bluetooth`.

## 10.3.1

- Fixes `java.lang.IllegalStateException: Reply already submitted` when checking the status of Bluetooth service.

## 10.3.0

- Adds support for the new Android 13 permission: BODY_SENSORS_BACKGROUND.

## 10.2.3

- Fix missing POST_NOTIFICATIONS permission in the Android example project.

## 10.2.2

- Fixes the SCHEDULE_EXACT_ALARM status check on Android 12 and 13.

## 10.2.1

- Adds compatibility with Android Gradle Plugin 8.0.

## 10.2.0

- Adds support for the new Android 13 permissions: SCHEDULE_EXACT_ALARM, READ_MEDIA_IMAGES, READ_MEDIA_VIDEO and READ_MEDIA_AUDIO

## 10.1.0

- Adds support for the new Android 13 permission: NEARBY_WIFI_DEVICES.

## 10.0.0

- **BREAKING CHANGE**: Updates Android `compileSdkVersion` to `33` to handle the new `POST_NOTIFICATIONS` permission.
  > When updating to version 10.0.0 make sure to update the `android/app/build.gradle` file and set the `compileSdkVersion` to `33`.

## 9.0.2+1

- Undoes PR [#765](https://github.com/baseflow/flutter-permission-handler/pull/765) which by mistake requests write_external_storage permission based on the target SDK instead of the actual SDK of the Android device.

## 9.0.2

- Moves Android implementation into its own package.







 
