如何阅读“adb shell dumpsys Alarm”输出的公认答案是一部杰作。 然而,后来的Android版本添加了我不明白的字段。
以下是 Android 13 输出的示例:
RTC_WAKEUP #28: 闹钟{2311a92 type 0 origWhen 1709196900000 whenElapsed 101358972 com.google.android.deskclock} 标签=walarm:com.android.deskclock.action.UPDATE_ALARM_INSTANCES 类型=RTC_WAKEUP origWhen=2024-02-29 10:55:00.000 窗口=0 精确允许原因=policy_permission 重复间隔=0 计数=0 标志=0x3 policyWhenElapsed:请求者=+1h15m59s870ms app_standby=-23s210ms device_idle=-- Battery_saver=-- tare=-23s210ms WhenElapsed=+1h15m59s870ms maxWhenElapsed=+1h15m59s870ms 闹钟: 触发时间=2024-02-29 10:55:00.000 showIntent=PendingIntent{3ecfc63: PendingIntentRecord{85fd060 com.google.android.deskclock startActivity}} 操作=PendingIntent{41b3b6b:PendingIntentRecord{b7516c8 com.google.android.deskclockbroadcastIntent}} 空闲选项=捆绑[{android.pendingIntent.backgroundActivityAllowed=false, android:broadcast.temporaryAppAllowlistReasonCode=301, android:broadcast.temporaryAppAllowlistDuration=10000, android:broadcast.temporaryAppAllowlistReason=, android:broadcast.temporaryAppAllowlistType=0}]
有一些新条目:flags、device_idle、battery_saver 此外,在某些条目中还有一个附加部分闹钟。我想知道它的意义是什么。
这些意味着所有政策类型, 代码如下
static String policyIndexToString(int index) {
switch (index) {
case REQUESTER_POLICY_INDEX:
return "requester";
case APP_STANDBY_POLICY_INDEX:
return "app_standby";
case DEVICE_IDLE_POLICY_INDEX:
return "device_idle";
case BATTERY_SAVER_POLICY_INDEX:
return "battery_saver";
case TARE_POLICY_INDEX:
return "tare";
default:
return "--unknown(" + index + ")--";
}
}
battery_saver=-- 表示已用时间为 0