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.Manifest;
import android.app.Activity; import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
@@ -27,6 +28,8 @@ import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.jens.automation2.receivers.NotificationListener; import com.jens.automation2.receivers.NotificationListener;
import java.util.ArrayList; import java.util.ArrayList;
@@ -316,9 +319,20 @@ public class ActivityPermissions extends Activity
{ {
return haveAccessibilityAccess(Miscellaneous.getAnyContext()); 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 else
{ {
int res = context.checkCallingOrSelfPermission(s); // int res = context.checkCallingOrSelfPermission(s);
int res = ContextCompat.checkSelfPermission(context, s);
return (res == PackageManager.PERMISSION_GRANTED); return (res == PackageManager.PERMISSION_GRANTED);
} }
} }
@@ -573,8 +587,8 @@ public class ActivityPermissions extends Activity
break; break;
case timeFrame: case timeFrame:
if(Build.VERSION.SDK_INT >= 31 && Miscellaneous.getTargetSDK(Miscellaneous.getAnyContext()) >= 31 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); addToArrayListUnique(Manifest.permission.SCHEDULE_EXACT_ALARM, requiredPermissions);
break; break;
@@ -1040,7 +1054,7 @@ public class ActivityPermissions extends Activity
required permissions have been granted. required permissions have been granted.
*/ */
super.onActivityResult(requestCode, resultCode, data); // super.onActivityResult(requestCode, resultCode, data);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 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: 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: Airplane mode trigger didn't work if no locations where defined.
* Fixed: Vibrate action didn't work on some devices * 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 * Added Possibility to select UI theme, hence enabling modern UI designs