diff --git a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java index 33b25100d6c7d2aaba172f88dbf8d58e2f69674d..271992f8e578b03584070677f8335bb47d50f6fa 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java +++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java @@ -123,8 +123,8 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { final String packageName = getPackageName(); - //Log.d(TAG, "Maybe ignoring battery optimization"); final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { Log.d(TAG, "Requesting ignore battery optimization"); try { diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java index 1da9df6ec3619cb2a86f80c8b1acc8cb21eca0a3..69b027019cdcdaa19d328110e95ec85699fe7b70 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java +++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java @@ -66,9 +66,12 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { alarmManager.setAlarmClock(new AlarmManager.AlarmClockInfo(millis, null), pendingIntent); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + // Android 5.0.0 + 5.0.1 (e.g. Galaxy S4) has a bug. + // Alarms are not exact. Fixed in 5.0.2 oder CM12 alarmManager.setExact(AlarmManager.RTC_WAKEUP, millis, pendingIntent); - } else + } else { alarmManager.set(AlarmManager.RTC_WAKEUP, millis, pendingIntent); + } } // restarting the alarm after MedtronicCnlIntentService.POLL_PERIOD_MS from now