我知道是遲到的答案,但只是爲了防止任何人遇到同樣的問題。我遇到了同樣的問題,並花了幾個小時嘗試幾種解決方案,直到我得出結論,您不應該使用adb shell dumpsys deviceidle force-idle
進入深度閒置模式來測試您的推送通知,因爲它們將不會被接收(您的設備被強制進入深度空閒模式,除非您執行unforce命令)。
如果您想在深度閒置模式下測試您的高優先級推送通知,請改用adb shell dumpsys deviceidle step
來完成所有步驟,直到您進入深度閒置模式。這是一個例子。
adb shell dumpsys deviceidle get light
ACTIVE
adb shell dumpsys deviceidle step
Stepped to deep: IDLE_PENDING
adb shell dumpsys deviceidle get light
INACTIVE
adb shell dumpsys deviceidle step
Stepped to deep: SENSING
adb shell dumpsys deviceidle step
Stepped to deep: LOCATING
adb shell dumpsys deviceidle step
Stepped to deep: IDLE
adb shell dumpsys deviceidle get light
OVERRIDE
adb shell dumpsys deviceidle get deep
IDLE
這樣,您將進入深度打盹模式,就像在真實的情況下一樣,您的推送將按預期方式收到。 通知在調用step命令之前,您應該執行adb shell dumpsys battery unplug
並關閉設備屏幕。
我的猜測adb shell dumpsys deviceidle force-idle
更強大,因爲即使設備屏幕打開,它仍強制空閒模式。當他們說「你可以通過以下步驟測試打盹模式:」並且告訴你使用force-idle命令時,這是完全誤導官方android doc的。因爲這種強制怠速不是真正的效果,所以沒有任何聲明。
你正在使用什麼設備?你有沒有安裝任何任務管理器,可能會在電話閒置時殺死谷歌播放服務? –
在HTC設備上做了一些測試。它沒有安裝任何任務管理器應用程序。 –