2011-07-15 10 views
7

Jak uzyskać zdarzenia dotykowe, takie jak Ty, z działania z użyciem public boolean onTouchEvent(MotionEvent event)? Oczywiście nie jest to metoda zastępowania usługi, więc jak mogę to zrobić? Czy istnieje bezpośredni sposób lub niezawodne obejście?Uzyskiwanie zdarzeń dotyku (współrzędne, zdarzenia MotionEvent, itp.) W usłudze

Moim zamysłem jest stworzenie usługi, która nasłuchuje w tle, aby użytkownik wykonał określony gest, a następnie zrób coś, gdy użytkownik wykona prawidłowy gest. Dziękuję Ci!

EDYCJA: To pytanie jest przeznaczone do odpowiedzi na to question.

+0

Nie znam 100%, więc nie zamierzam umieszczać tego w odpowiedziach, ale cała idea usługi polega na tym, że nie ma żadnej ludzkiej interakcji. Sądzę też, że 9 razy na 10 osób, które użyłyby telefonu, nie wykonywałoby gestów poza aplikacją, więc każde rozwiązanie może wywołać procedurę, która mogłaby spowolnić ogólną wygodę użytkownika. – DeeV

+0

Dobrze przyjrzyj się dwóm aplikacjom https://market.android.com/details?id=mobi.conduction.swipepad.android&feature=search_result i https://market.android.com/details?id=com.mobilemerit .wavelauncher & feature = search_result. Próbuję wymyślić, jak to zrobić. – Brian

+0

Potem mam nadzieję, że ktoś odpowie na to pytanie, ponieważ chciałbym wiedzieć też. Chociaż, myślę, że * są to niestandardowe widżety, takie jak te, które znajdują się na pulpicie telefonu, tylko że są zawsze na wierzchu. Jeśli dobrze pamiętam, Wave Launcher zaczyna się poza ekranem i trzeba go przeciągnąć. Dolne 20 pikseli było krawędzią widżetu, który zarejestrował jej dotknięcie. Na pierwszy rzut oka podkładka jest taka sama. Nie korzystaj z usługi. – DeeV

Odpowiedz

0

Możesz utworzyć widok 0x0 i dodać go do okna Usługi jako dialog systemowy, który zawsze znajduje się na górze.

Możesz słuchać wydarzeń za pomocą uprawnienia 'WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH'. Niestety, możesz uzyskać tylko wstępne wydarzenie dotykowe i nie możesz przekazać wydarzenia, aby obniżyć aktywność. Cieszę się, że nie możesz tego zrobić; możesz sobie wyobrazić, jak złośliwe oprogramowanie wykorzysta to w celu uzyskania poświadczeń użytkownika.

+0

Dzięki, ale jeśli odwołasz się do mojego pytania, mam link do pytania, które pokazuje, jak to by działało. Moim największym problemem jest uzyskanie ruchomych gestów dotykowych. Aplikacje takie jak Wave Launcher i SwipePad są w stanie to zrobić, ale po prostu nie wiem jak. – Brian

Powiązane problemy