Skip to content
Snippets Groups Projects
Commit 440a14a7 authored by Volker Richert's avatar Volker Richert
Browse files

use different methods to set alarm depending on OS version

parent 3156be4d
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.support.v4.content.WakefulBroadcastReceiver;
import android.util.Log;
......@@ -16,8 +17,8 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver {
private static final String TAG = MedtronicCnlAlarmReceiver.class.getSimpleName();
private static final int ALARM_ID = 102; // Alarm id
private static PendingIntent pi = null;
private static AlarmManager am = null;
private static PendingIntent pendingIntent = null;
private static AlarmManager alarmManager = null;
@Override
public void onReceive(final Context context, Intent intent) {
......@@ -31,9 +32,9 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver {
public void setContext(Context context) {
cancelAlarm();
am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, MedtronicCnlAlarmReceiver.class);
pi = PendingIntent.getBroadcast(context, ALARM_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
pendingIntent = PendingIntent.getBroadcast(context, ALARM_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
// Setting the alarm in 15 seconds from now
......@@ -43,7 +44,7 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver {
// Setting the alarm to call onRecieve
public void setAlarm(long millis) {
if (am == null || pi == null)
if (alarmManager == null || pendingIntent == null)
return;
cancelAlarm();
......@@ -53,7 +54,12 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver {
millis = System.currentTimeMillis();
Log.d(TAG, "AlarmManager set to fire at " + new Date(millis));
am.setExact(AlarmManager.RTC_WAKEUP, millis, pi);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, millis, pendingIntent);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, millis, pendingIntent);
} else
alarmManager.set(AlarmManager.RTC_WAKEUP, millis, pendingIntent);
}
// restarting the alarm after MedtronicCnlIntentService.POLL_PERIOD_MS from now
......@@ -63,10 +69,10 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver {
// Cancel the alarm.
public void cancelAlarm() {
if (am == null || pi == null)
if (alarmManager == null || pendingIntent == null)
return;
am.cancel(pi);
alarmManager.cancel(pendingIntent);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment