Отримати список активних PendingIntents в AlarmManager


78

Я є спосіб отримати список активних PendingIntents на пристрої?

Я починаю працювати, AlarmManagerі мені подобається перевіряти, чи PendingIntentправильно створено чи видалено мої s.

Також було б непогано подивитися, що PendingIntentтам ще є, просто як цікавість дізнатись, чи виконує якась програма «додаткову роботу».

Відповіді:


171
adb shell dumpsys alarm > dump.txt

dump.txt:

Current Alarm Manager state:

  Realtime wakeup (now=1309361618777):
  RTC_WAKEUP #5: Alarm{4822f618 type 0 com.google.android.gsf}
    type=0 when=1309882326582 repeatInterval=522747000 count=0
    operation=PendingIntent{47dd3740: PendingIntentRecord{4822aeb8 com.google.android.gsf broadcastIntent}}
  ...
  RTC #5: Alarm{4810f9d8 type 1 com.tmobile.selfhelp}
    type=1 when=1309445979715 repeatInterval=86400000 count=1
    operation=PendingIntent{4815a5c8: PendingIntentRecord{4810f960 com.tmobile.selfhelp startService}}
  RTC #4: Alarm{4810f668 type 1 com.tmobile.selfhelp}
    type=1 when=1309445959620 repeatInterval=86400000 count=1
    operation=PendingIntent{480996e8: PendingIntentRecord{480214a0 com.tmobile.selfhelp broadcastIntent}}
  ...

  Elapsed realtime wakeup (now=2110632):
  ELAPSED_WAKEUP #5: Alarm{481c24e0 type 2 com.google.android.apps.maps}
    type=2 when=2147485512925 repeatInterval=0 count=0
    operation=PendingIntent{47d1d3a8: PendingIntentRecord{481a2600 com.google.android.apps.maps broadcastIntent}}     
  ...
  ELAPSED #1: Alarm{4829ce98 type 3 android}
    type=3 when=2512653 repeatInterval=0 count=0
    operation=PendingIntent{47eabda8: PendingIntentRecord{47f20250 android broadcastIntent}}
  ELAPSED #0: Alarm{480f0198 type 3 com.mixzing.basic}
    type=3 when=2439998 repeatInterval=0 count=0
    operation=PendingIntent{48100dd8: PendingIntentRecord{480ff5a0 com.mixzing.basic broadcastIntent}}

  Broadcast ref count: 0

  Alarm Stats:
  com.google.android.location
    3ms running, 1 wakeups
    1 alarms: act=com.google.android.location.ALARM_WAKEUP flg=0x4
  com.google.android.gsf
    274ms running, 4 wakeups
    1 alarms: flg=0x4
    1 alarms: act=com.google.android.intent.action.GTALK_RECONNECT flg=0x4
    2 alarms: act=com.google.android.intent.action.GTALK_HEARTBEAT flg=0x4
 ...
-------------------------------------------------------------------------------

1
О, виявляється, є одна. Спробуйте використовувати dumpsys alarm. Я оновив відповідь.
inazaruk

2
Щойно перевірив і можу підтвердити, що це неможливо зробити на пристрої, якщо у вас немає root "Відмова в дозволі: не вдається скинути AlarmManager з pid = 16910, uid = 10120"
koi-

1
Що означає властивість count ? У мене в додатку велика сума. type=3 when=+4m7s342ms repeatInterval=300000 count=4703Чи означає це, що було налаштовано 4703 сигналізації?
Сергій Печенізький

1
@plastiv - для повторення будильників, countвимірює, скільки разів будильник повинен був спрацьовувати, але це не було (тобто тому, що телефон спав). Якщо count > 1сигнал тривоги був пропущений щонайменше один раз. Отже, repeatInterval=300000 count=4703означає, що сигналізація повинна повторюватися раз на 5 хвилин, але вона пропустила 4702 рази - я думаю, телефон був вимкнений на пару днів.
kamituel

1
@ koi-feed - я не вкорінений, і у мене не було проблем із запуском команди дампа (запуск Motorola Moto G)
RTF

3

adb shell dumpsys alarm> dump.txt - це шлях, і для цього вам не потрібен дозвіл root. Але те, що ви отримуєте згори, може бути дуже заплутаним для розуміння. Для того, щоб зрозуміти цей дамп повністю, вам слід перевірити відповідь морфатика тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.