Belirli bir zamanda görüntülenecek bir aktivite istiyorum. Bunun için AlarmManager kullanıyorum. Cihaz uyanıkken iyi çalışıyor, ancak uykudaysa uyanmıyor. Alarmı ayarlamak içinandroid AlarmManager telefonu uyandırmıyor
Kodum:
Calendar alarmTime = Calendar.getInstance();
alarmTime.set(Calendar.HOUR_OF_DAY, alarm.hour);
alarmTime.set(Calendar.MINUTE, alarm.minute);
alarmTime.set(Calendar.SECOND, 0);
if (alarmTime.before(now))
alarmTime.add(Calendar.DAY_OF_MONTH, 1);
Intent intent = new Intent(ctxt, AlarmReceiver.class);
intent.putExtra("alarm", alarm);
PendingIntent sender = PendingIntent.getBroadcast(ctxt, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), sender);
My yayın alıcısı:
@Override
public void onReceive(Context context, Intent intent) {
try {
Bundle bundle = intent.getExtras();
final Alarm alarm = (Alarm) bundle.getSerializable("alarm");
Intent newIntent;
if (alarm.type.equals("regular")) {
newIntent = new Intent(context, RegularAlarmActivity.class);
} else if (alarm.type.equals("password")) {
newIntent = new Intent(context, PasswordAlarmActivity.class);
} else if (alarm.type.equals("movement")) {
newIntent = new Intent(context, MovementAlarmActivity.class);
} else {
throw new Exception("Unknown alarm type");
}
newIntent.putExtra("alarm", alarm);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newIntent);
} catch (Exception e) {
Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show();
Log.e("AlarmReceiver", Log.getStackTraceString(e));
}
}
Bu kod cihazı uyandırmak etmez. Ancak, tekrar açtığımda, görüntülenir. Ekranı açmaları için onlara ihtiyacım var. Bu problemde bana yardımcı olabilir misiniz?
Git sen OnReceive başlamak istediğiniz Etkinlik(). Bu işlemin onCreate() yöntemine yapıştırın Son Pencere win = getWindow(); win.addFlags (WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); win.addFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); – Junaid