2011-08-03 14 views
6

Jak symulować gesty przesunięcia (w lewo i w prawo, na przykład) na AVD? Czy to w ogóle możliwe? (W Android Developer's Guide - Emulator nie mogę ich znaleźć ...Android, jak emulować gesty przesuwania w AVD?

PS: muszę „z ekranem dotykowym wsparcia” ustawiony na „tak” w moim Android 2.2, poziom API 8 ustawieniach urządzenia

+0

Kliknięcie i przytrzymanie za pomocą wskaźnika myszy nie działa? –

+0

Ya thats pracował dla mnie - kliknij i przytrzymaj - przeciągnij w lewo/prawo - puścić. – Jack

+1

To naprawdę nie działa dla mnie ... Używam poziomego układu ViewFlipper (na prawdziwym urządzeniu, lewe/prawe przesunięcie działa ...) – MarcoS

Odpowiedz

4

Wystarczy kliknąć i przytrzymaj i przesuń mysz, aby utworzyć żądany ruch,

+2

To nie działa dla mnie ... :-(Czy naprawdę sprawdziłeś, czy to działa dla ciebie? – MarcoS

+0

Tak, nie miałem żadnych problemów z wprowadzeniem danych przez użytkownika na emulatorze –

+1

Niestety, miałem problem z moje oprogramowanie, przeciąganie myszki działa świetnie ...: - ((( – MarcoS

2

Możesz rejestrować zdarzenie wejściowe i odtwarzać je na emulatorze, używając powłoki adb shell getevent i adb shel sendevent, nieco twardej tounder, i wymaga tłumaczenia wartości szesnastkowych wyniku getevent na dziesiętny, ale bardzo przydatny:

+0

Masz na myśli, zbieraj rekordy na hexach, a sendevent akceptuje tylko dziesiętne? – MarcoS

4

Wiem, że odpowiedź została udzielona, ​​ale odpowiadam Aby zapewnić niezwykle łatwy sposób symulacji zdarzeń dotykowych dla przyszłych wyszukiwań.

Jednym z łatwych sposobów jest ślepe kopiowanie!

Zamiast odczytywać dane wyjściowe getevent, a następnie nadawać je sendevent, które jest naprawdę wolne. Po prostu ślepo kopiuj gesty z prawdziwego urządzenia z tą samą wersją Androida, a następnie ślepo wklej je.

Można skopiować wprowadzania dotykowego w rzeczywistym urządzeniu przez:

1- W adb shell metę dd if=/dev/input/event2 of=/sdcard/left.

2- Wykonaj gest, który chcesz symulować (przesuń palcem).

3- Ta ściana utworzy plik o nazwie (/sdcad/left) z danymi wygenerowanymi przez prawdziwy dotyk.

4- Przenieś plik w dowolne miejsce na AVD, powiedzmy (/sdcad/left).

5- W AVD adb powłoki uruchomić dd if=/sdcard/left of=/dev/input/event2

Viola! Symulowane zdarzenie dotykowe będzie miało miejsce.

UWAGA: W moim urządzeniu plik, który ma zdarzenia dotykowe, jest /dev/input/event2, może się różnić w zależności od urządzenia, więc możesz najpierw użyć wersji próbnej i błędu.

W skrócie, jeśli nagrywać i grać na tym samym urządzeniu:

1- dd if=/dev/input/event2 of=/sdcard/left

2- wykonaj dotyk dla prawdziwego

3- dd if=/sdcard/left of=/dev/input/event2

4- Powtórzyć etap 3, tyle, ile potrzebujesz.

Cheers :)

+1

Nie wiem, czy to mi pomoże ??? ... ale to dało mi jakiś pomysł ... dziękuję omer ... + 1 do ciebie .... – kalandar

0

tl; dr: Myślę, że czujesz, że to nie działa, gdy problem jest to, że jest to po prostu bardzo powolny przynosząc przetwarzania wejściowe użytkownika w Internecie. Jeśli będziesz bał się z nim przez 10 minut i nadal nie działa, to jest coś nie tak - ale najpierw daj mu 10 minut.

Oto moje doświadczenie, dzięki czemu można zobaczyć, jak doszedłem do tego wniosku:

nigdy wyraźnie dodaje urządzenie do Menedżera AVD - Studio dodaje to dla mnie.

Kiedy uruchomiłem moją (Hello World) aplikację, zajęło mi to sporo czasu - najpierw nic się nie działo, więc kliknąłem "Android" na dole okna Studio i odkryłem, że to się logowało to robił.

Było jeszcze wiele opóźnień. Chwilę później pojawił się emulator i pojawił się komunikat o braku kopii zapasowej lub coś podobnego. Inną minutę później zobaczyłem, że napis "Ładowanie", więc kliknąłem i przeciągnąłem, ale nic się nie stało. Próbowałem to jeszcze kilka razy i nareszcie zareagowałem zmieniając "Ładowanie" na "Przesuń, aby odblokować" (myślę - coś takiego). Więc spróbowałem przeciągnięcia kilkakrotnie, ale nie udało mi się zarejestrować oporu. W końcu zauważyłem, że przycisk aparatu fotograficznego (oprogramowania) świeci się, gdy się nad nim pogrążyłem, więc kliknąłem go, a następnie wszedłem do aparatu (nie jestem pewien, czy to było przez przeciągnięcie lub kliknięcie małego < w białym kółku), a stamtąd Mógłbym robić rzeczy.

Powiązane problemy