Stworzyłem aplikację, która zawsze działała do wersji Androida 6.0. Myślę, że to funkcja Drzemki, która nie pozwala, by mój alarm wystrzelił.Problem z Menedżerem alarmów w systemie Android 6.0 Tryb drzemki
używam sharedpreferences obsłużyć opcje:
//ENABLE NIGHT MODE TIMER
int sHour = blockerTimerPreferences.getInt("sHour", 00);
int sMinute = blockerTimerPreferences.getInt("sMinute", 00);
Calendar sTime = Calendar.getInstance();
sTime.set(Calendar.HOUR_OF_DAY, sHour);
sTime.set(Calendar.MINUTE, sMinute);
Intent enableTimer = new Intent(context, CallReceiver.class);
enableTimer.putExtra("activate", true);
PendingIntent startingTimer = PendingIntent.getBroadcast(context, 11002233, enableTimer, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager sAlarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
sAlarm.setRepeating(AlarmManager.RTC_WAKEUP,
sTime.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, startingTimer);
Wszelkie clue co niewłaściwy tutaj?
Jest to aplikacja do blokowania połączeń. Dziękuję Ci!
EDIT: mam 3 pliki (więcej, ale ...), takich jak:
MainActivity (All code)
CallReceiver (Broadcast that triggers the alarm again (reboot etc))
CallReceiverService (Handles the call/phone state)
Wykorzystanie 'ADB shell dumpsys alarm' aby potwierdzić, że alarm jest planowy. Zauważ, że 'setRepeating()' jest niedokładne w systemie Android 4.4+. "To też powoduje wyczerpywanie się baterii" - wydaje się to mało prawdopodobne. Kod, który nie działa, nie powinien zużywać baterii. – CommonsWare
Hi @CommonsWare, 52 przebudzenia i 52 alarmy ... Zawsze alarmuje. 'setRepeating()' uruchomi się w tej chwili, bez problemu. – FilipeOS
@FilipeOS Czy sprawiłeś, że to zadziałało? Czy możemy wdrożyć alarmManager.setRepeating() w trybie drzemki? – devgeek