Essentials icon indicating copy to clipboard operation
Essentials copied to clipboard

Unable to Grant ScheduleExactAlarm permission.

Open munkii opened this issue 1 year ago • 0 comments

Description

Android 12 introduced the ScheduleExactAlarm permission and to get access that to that in Andorid 12,13 and 14 I have written a custom Permission as per the "extending" docs.

   public interface IScheduleExactNotificationPermission
   {
       Task<PermissionStatus> CheckStatusAsync();

       Task<PermissionStatus> RequestAsync();
   }

With an implementation in Android of

public class ScheduleExactNotificationPermission : BasePlatformPermission, IScheduleExactNotificationPermission
{
  public override (string androidPermission, bool isRuntime)[] RequiredPermissions => new List<(string androidPermission, bool isRuntime)>
  {
      (Android.Manifest.Permission.ScheduleExactAlarm, true),
  }.ToArray();
}

AssemblyInfo.cs in Adroid target has these two permission declarations

[assembly: UsesPermission(Android.Manifest.Permission.ScheduleExactAlarm)]
[assembly: UsesPermission(Android.Manifest.Permission.UseExactAlarm)]

Steps to Reproduce

  1. In our common code I call it like this,
var status = await this.scheduleExactNotificationPermission.CheckStatusAsync();
if (status != PermissionStatus.Granted)
{
    status = await this.scheduleExactNotificationPermission.RequestAsync();
}
  1. In Android 12 status is Granted, Android 13 Granted but in Android 14 status is Denied after the call to RequestAccess. As I understand it the permission only had to be requested from Android 14 onwards.

Expected Behavior

An OS Dialog that allows me as a user to Grant permission

Actual Behavior

Nothing other than an immediate call back into OnRequestPermissionsResult with the following args requestCode 12001 permissions android.permission.SCHEDULE_EXACT_ALARM grantResults -1

This happens on a fresh install too so is not simply becvause it has been asked many times before and denied

Basic Information

  • Version with issue: Xamarin Essentials 1.8.1
  • Last known good version: New code
  • IDE: VS2022 17.9.0
  • Platform Target Frameworks:
    • iOS:
    • Android: 33
    • UWP:
  • Android Support Library Version:
  • Nuget Packages:
  • Affected Devices:

Screenshots

Reproduction Link

munkii avatar Feb 21 '24 08:02 munkii