Commit ab441e1f by TimHoogstrate Committed by GitHub

Fixes bug 1274, removed SDK check to see permission status of schedule exact…

Fixes bug 1274, removed SDK check to see permission status of schedule exact alarm on Android. (#1277)

* Fixes bug 1274, removed SDK check to see permission status.

* Added support for older API versions
parent 310ee3a5
## 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).
......
......@@ -126,14 +126,14 @@ final class PermissionManager implements PluginRegistry.ActivityResultListener,
return false;
}
} else if (requestCode == PermissionConstants.PERMISSION_CODE_SCHEDULE_EXACT_ALARM) {
permission = PermissionConstants.PERMISSION_GROUP_SCHEDULE_EXACT_ALARM;
AlarmManager alarmManager = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
AlarmManager alarmManager = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
status = alarmManager.canScheduleExactAlarms()
? PermissionConstants.PERMISSION_STATUS_GRANTED
: PermissionConstants.PERMISSION_STATUS_DENIED;
permission = PermissionConstants.PERMISSION_GROUP_SCHEDULE_EXACT_ALARM;
} else {
return false;
status = PermissionConstants.PERMISSION_STATUS_GRANTED;
}
} else {
return false;
......
......@@ -348,9 +348,8 @@ public class PermissionUtils {
permissionNames.add(Manifest.permission.READ_MEDIA_AUDIO);
break;
case PermissionConstants.PERMISSION_GROUP_SCHEDULE_EXACT_ALARM:
// The SCHEDULE_EXACT_ALARM permission is introduced in Android S, meaning we should
// not handle permissions on pre Android S devices.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && hasPermissionInManifest(context, permissionNames, Manifest.permission.SCHEDULE_EXACT_ALARM))
// The SCHEDULE_EXACT_ALARM permission is introduced in Android S, before Android 31 it should alway return Granted
if (hasPermissionInManifest(context, permissionNames, Manifest.permission.SCHEDULE_EXACT_ALARM))
permissionNames.add(Manifest.permission.SCHEDULE_EXACT_ALARM);
break;
case PermissionConstants.PERMISSION_GROUP_MEDIA_LIBRARY:
......
......@@ -31,7 +31,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.baseflow.permissionhandler.example"
minSdkVersion 16
minSdkVersion flutter.minSdkVersion
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
......
name: permission_handler_android
description: Permission plugin for Flutter. This plugin provides the Android API to request and check permissions.
homepage: https://github.com/baseflow/flutter-permission-handler
version: 12.0.3
version: 12.0.4
environment:
sdk: ">=2.15.0 <4.0.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment