Wiem, że odpowiedź jest spóźniona, ale na wszelki wypadek, gdy ktoś wpadnie na ten sam problem. Wystąpił ten sam problem i spędziłem kilka godzin próbując kilku rozwiązań, aż doszedłem do wniosku, że nie powinieneś używać adb shell dumpsys deviceidle force-idle
, aby wejść w tryb głębokiego bezczynności, aby przetestować powiadomienia push, ponieważ one po prostu nie zostaną odebrane (twoje urządzenie jest wymuszone do głębokiego trybu bezczynności, cokolwiek się stanie, chyba że wykonasz polecenie unforce).
Jeśli chcesz przetestować powiadomienia o wysokim priorytecie w trybie głębokiego spoczynku, użyj zamiast tego adb shell dumpsys deviceidle step
, aby przejść przez wszystkie kroki, aż osiągniesz tryb bezczynności. Oto przykład.
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
W ten sposób wejdziesz w tryb głębokiej drzemki, tak jak w rzeczywistym przypadku, a twoje popchnięcia zostaną odebrane zgodnie z oczekiwaniami. Powiadomienie, że przed wywołaniem polecenia step należy wykonać polecenie adb shell dumpsys battery unplug
i wyłączyć ekran urządzenia.
Domyślam się, że adb shell dumpsys deviceidle force-idle
jest silniejszy, ponieważ wymusza tryb bezczynności, nawet jeśli ekran urządzenia jest włączony. To całkowicie mylące z oficjalnym androidem doc kiedy mówią "Możesz testować tryb Doze, wykonując następujące czynności:" i powiedz, aby użyć polecenia force-idle. Ponieważ ta siła-idle nie działa tak jak prawdziwa i nie ma w tym żadnej zrzeczenia.
jakiego urządzenia używasz? czy masz zainstalowanych menedżerów zadań, które prawdopodobnie zabijają usługi Google Play, gdy telefon jest w stanie bezczynności? –
Zrobiłem kilka testów na urządzeniu HTC. Nie ma zainstalowanych żadnych aplikacji menedżera zadań. –