Android - Bezczynność / aktywność niezależnie od najwyższej aplikacji
Muszę dowiedzieć się, kiedy była ostatnia interakcja użytkownika, niezależnie od tego, która aplikacja jest na wierzchu. Nie obchodzi mnie, gdzie i jakie wydarzenie było. Muszę tylko wiedzieć, kiedy to było. Lub alternatywnie, jak się zdarza, otrzymuję zdarzenie.
Próbowałem wielu rzeczy:
Utwórz usługę za pomocą okna i dodaj słuchacza dotykowego. To zjadło zdarzenie dotyku i nie przekazało goSzukał polecenia powłoki.getevent
działa (nowa linia przychodzi za każdym razem, gdy dotykamy), ale potrzebujesz roota, więc nie jest to dla mnie odpowiednie rozwiązanie.Szukałem „czasu do zamka”, ale nic nie wymyśliłem.Zwróć także uwagę: Nie ma obaw związanych z bezpieczeństwem, ponieważ nie potrzebuję żadnych informacji identyfikujących, takich jak lokalizacja dotyku. Tylko znaczek typu (lub wydarzenie na żywo).
Jestem także otwarty na refleksję, aby to zrozumieć.
@ user2558882 ma bardzo dobre rozwiązanie. Na razie jest to najlepsze podejście, na jakie natrafiłem.
Chociaż jest to świetne, nadal wymaga od użytkownika ręcznego włączenia naszej aplikacji w kontrolkach dostępności. Mamy klientów z tysiącami urządzeń i mamy sposób na automatyczną aktualizację i zmianę ustawień. Staramy się, aby konfiguracja ręczna była minimalna, ale niektóre rzeczy nadal wymagają wprowadzania danych przez użytkownika, takich jak włączenie trybu administratora urządzenia. Więc to rozwiązanie jest akceptowalne, ale nadal jestem otwarty na sposób, który nie wymaga żadnych danych wejściowych od użytkownika.
Zakończyłem wdrażanie idei @ user2558882, aby skorzystać z usługi ułatwień dostępu. Choć inne pomysły są mile widziane.