Permission check for ability to schedule exact timers

This commit is contained in:
2025-12-06 17:59:22 +01:00
parent f7d8389668
commit 4478006109
2 changed files with 19 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ package com.jens.automation2;
import android.Manifest;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.NotificationManager;
import android.app.admin.DevicePolicyManager;
@@ -27,6 +28,8 @@ import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.jens.automation2.receivers.NotificationListener;
import java.util.ArrayList;
@@ -316,9 +319,20 @@ public class ActivityPermissions extends Activity
{
return haveAccessibilityAccess(Miscellaneous.getAnyContext());
}
else if(s.equals(Manifest.permission.SCHEDULE_EXACT_ALARM) && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
{
/*
It appears like as long as targetSdk has not been raised, this check
will return true even if the slider in the settings for that
permission is not enabled.
*/
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
return alarmManager.canScheduleExactAlarms();
}
else
{
int res = context.checkCallingOrSelfPermission(s);
// int res = context.checkCallingOrSelfPermission(s);
int res = ContextCompat.checkSelfPermission(context, s);
return (res == PackageManager.PERMISSION_GRANTED);
}
}
@@ -573,8 +587,8 @@ public class ActivityPermissions extends Activity
break;
case timeFrame:
if(Build.VERSION.SDK_INT >= 31 && Miscellaneous.getTargetSDK(Miscellaneous.getAnyContext()) >= 31
// ||
// Build.VERSION.SDK_INT >= 33
||
Build.VERSION.SDK_INT >= 34 //https://developer.android.com/about/versions/14/changes/schedule-exact-alarms
)
addToArrayListUnique(Manifest.permission.SCHEDULE_EXACT_ALARM, requiredPermissions);
break;
@@ -1040,7 +1054,7 @@ public class ActivityPermissions extends Activity
required permissions have been granted.
*/
super.onActivityResult(requestCode, resultCode, data);
// super.onActivityResult(requestCode, resultCode, data);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{

View File

@@ -5,4 +5,5 @@
* Fixed: Permission BLUETOOTH_CONNECT requested for Bluetooth trigger editor in Google Play version
* Fixed: Airplane mode trigger didn't work if no locations where defined.
* Fixed: Vibrate action didn't work on some devices
* Fixed: Permission check for ability to schedule exact timers
* Added Possibility to select UI theme, hence enabling modern UI designs