Ich habe einen Alarm geplant, um einen Broadcast Reciver zu starten, wenn es Zeit ist und innerhalb der Broadcast-Checks für einige Parameter des Alarmobjekts zu bestimmen, welche Aktivität zu starten .. die App funktioniert finden wenn der Bildschirm eingeschaltet ist, aber wenn der Bildschirm gesperrt ist es funktioniert nichtAktivität wird nicht angezeigt, wenn Alarm ausgelöst
Hier ist, was ich tat:
für Zeitplan -Diese den Alarm
/* Prepare Alarm Intent*/
Intent alarmIntent = new Intent(ctx, LockRoute.class);
alarmIntent.putExtra(CONSTANTS.ALARM_NAME, alarm.alarmName);
alarmIntent.putExtra(CONSTANTS.ALARM_TONE, alarm.tone);
alarmIntent.putExtra(CONSTANTS.ALARM_LOCK_TYPE, alarm.unLockType);
//prepare the Pending intent
PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, day.getId().intValue(), alarmIntent, 0);
und das ist die Sendung
/* Pass Alarm Info to unLock Screen*/
alarmRaised.putExtra(CONSTANTS.ALARM_NAME,bundle.getString(CONSTANTS.ALARM_NAME));
alarmRaised.putExtra(CONSTANTS.ALARM_TONE,bundle.getString(CONSTANTS.ALARM_TONE));
alarmRaised.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(alarmRaised);
Und ich hinzugefügt, um die Fahnen für die Aktivität zu zeigen, wenn das Gerät
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
Logger.init();
/* Check Device SDK to call the correct Function to TURN ON SCREEN */
if (Build.VERSION.SDK_INT < 20) {
if (!pm.isScreenOn()) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
+WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
+WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Logger.d("less than 20");
}else {
Logger.d("SCREEN ON < 20");
}
} else {
if (!pm.isInteractive()) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
+WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
+WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Logger.d("bigger = than 20");
}else {
Logger.d("SCREEN ON else 20");
}
}