From 4a86a4c07879cf1c2f769bc0334e6f3ab8c46e07 Mon Sep 17 00:00:00 2001 From: mendhak Date: Thu, 2 Jan 2025 15:07:37 +0000 Subject: [PATCH] Auto send timers to use alarm manager compat, it was causing a crash on Android 15 when background usage was denied. Issue #1187 --- .../java/com/mendhak/gpslogger/GpsLoggingService.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gpslogger/src/main/java/com/mendhak/gpslogger/GpsLoggingService.java b/gpslogger/src/main/java/com/mendhak/gpslogger/GpsLoggingService.java index 5d4513cab..07aba969c 100644 --- a/gpslogger/src/main/java/com/mendhak/gpslogger/GpsLoggingService.java +++ b/gpslogger/src/main/java/com/mendhak/gpslogger/GpsLoggingService.java @@ -330,11 +330,10 @@ public void setupAutoSendTimers() { } PendingIntent sender = PendingIntent.getBroadcast(this, 0, alarmIntent, flags); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - am.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, sender); - } - else { - am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, sender); + if(AlarmManagerCompat.canScheduleExactAlarms(am)){ + AlarmManagerCompat.setExactAndAllowWhileIdle(am, AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, sender); + } else { + AlarmManagerCompat.setAndAllowWhileIdle(am, AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, sender); } LOG.debug("Autosend alarm has been set");