Rozróżniasz limit czasu ekranu od naciśnięcia przycisku zasilania?

moja aplikacja robi coś, gdy ekran staje się czarny, ale chcę, aby wykonywała to zadanie tylko wtedy, gdy ekran został wyłączony „sam” z powodu przekroczenia limitu czasu ekranu – NIE gdy użytkownik naciśnie przycisk zasilania. Czy można w jakiś sposób rozróżnić te dwa zdarzenia?

ACTION_SCREEN_OFF oczywiście uruchamia się w obu przypadkach i nie znalazłem żadnych innych zamiarów, które mogłyby pasować do tego, czego szukam.


person Nick    schedule 04.05.2010    source źródło
comment
Co próbujesz zrobić? Może być jeszcze jedna akcja, której warto posłuchać.   -  person CaseyB    schedule 04.05.2010
comment
Próbuję wykonać proste obliczenia, gdy upłynął limit czasu ekranu, ale nie wtedy, gdy użytkownik naciśnie przycisk zasilania, aby „wymusić” wyłączenie ekranu. Akcja na timeout byłaby świetna, ale nie znalazłem jeszcze niczego podobnego. Czy można sprawdzić, czy ekran blokady jest włączony (co, jak sądzę, zwykle dzieje się tylko po naciśnięciu przycisku zasilania, przynajmniej w N1)?   -  person Nick    schedule 05.05.2010
comment
Dlaczego chcesz to zrobić tylko w tej sytuacji? Jeśli wyjaśnisz co i dlaczego, być może ktoś zaproponuje Ci lepsze rozwiązanie.   -  person o0'.    schedule 05.05.2010
comment
Czy to może pomóc: stackoverflow.com/a/8941006/969325   -  person Warpzit    schedule 18.05.2013
comment
Dzięki, Warpzit, sprawdzę to!   -  person Nick    schedule 19.05.2013


Odpowiedzi (4)


Na niższym poziomie ma miejsce zdarzenie, gdy ekran wygaśnie, spójrz za pomocą „adb logcat”, a zobaczysz to, kopnij stamtąd.

person berkus    schedule 15.05.2010
comment
Dzięki za odpowiedź. Widziałem to, ale pomyślałem, że skoro to nie jest transmisja publiczna, to nie mogę tego słuchać, ale na pewno coś na ten temat znajdę w Google, jeśli powiesz, że teoretycznie jest to możliwe (choć nie zwykłymi środkami) , Chyba). Dzięki! - person Nick; 16.05.2010

Dzięki, to działa. Czy istnieje sposób, aby pochłonął ścieżkę pliku media/backups/andrey.txt bez polecenia zmiany katalogu? myślę, że tak właśnie działa FTP, ale może się mylę.
person Nelz11    schedule 22.05.2013

To zabawne pytanie :) Chociaż nie jest to dokładne, możesz spróbować pobrać próbkę czasu od ostatniego zdarzenia dotknięcia użytkownika do momentu wstrzymania aktywności i sprawdzić, czy pasuje to do Limit czasu wyłączenia ekranu

person Sean    schedule 22.05.2013

Czy możesz nasłuchiwać zdarzenia klawiatury KEYCODE_POWER? To może zrobić, co chcesz. (Ale kolejność pojawienia się tego i ACTION_SCREEN_OFF może nie być gwarantowana).

person jimrandomh    schedule 06.05.2010
comment
Cześć, dzięki za odpowiedź! To dobry pomysł, chociaż właśnie go wypróbowałem i nie działa, wydaje się, że nie można złapać tego kodu klawisza: groups.google.com/group/android-developers/browse_thread/thread/ Musiałbym także zarejestrować ten system zdarzeń kluczowych -wide, bo korzystam z usługi, co też nie jest możliwe, myślę :-/ Ale dzięki za pomoc, to dobry pomysł, gdyby zadziałało, byłoby idealnie :-)! - person Nick; 07.05.2010