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