CAFE

Android

ADB를 사용해 단말에 터치이벤트를 전송하는 방법

작성자운영자|작성시간16.07.03|조회수6,940 목록 댓글 0

출처: 

 

ADB(Android Debug Bridge)를 활용해 실제 단말에 터치 이벤트 전송하기:

 

먼저 탭 이벤트를 발생시키기 위해서는 해당 기기에 tab이라는 녀석이 있는지 확인해봐야합니다.

확인 방법은 다음과 같습니다:


adb shell getevent -l

                                                

add device 1: /dev/input/event7

  name:     "MHLRCP"

add device 2: /dev/input/event0

  name:     "pmic8xxx_pwrkey"

add device 3: /dev/input/event1

  name:     "keypad_8960"

add device 4: /dev/input/event4

  name:     "msm8960-snd-card Headset Jack"

add device 5: /dev/input/event3

  name:     "msm8960-snd-card Button Jack"

add device 6: /dev/input/event6

  name:     "hs_detect"

add device 7: /dev/input/event5

  name:     "suspend_autotest_pwrkey"

add device 8: /dev/input/event2

 

  name:     "synaptics_ts"

 

 

$ adb shell 입력 후

adb shell에서 아래 명령을 입력하면 touch가 가능합니다.

$ input tap 100 100

 

 

이런 경우에는 다음 명령을 입력한 후, 원하는 곳에 터치를 합니다:
adb shell getevent

 

화면 터치시에 아래와 같이 주루룩 뭔가가 쫙 나옵니다:

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000677

/dev/input/event2: 0003 003a 00000032

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000004

/dev/input/event2: 0003 0034 00000000

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000677

/dev/input/event2: 0003 003a 0000003a

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000004

/dev/input/event2: 0003 0034 00000000

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000677

/dev/input/event2: 0003 003a 0000003c

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000005

/dev/input/event2: 0003 0034 00000001

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000678

/dev/input/event2: 0003 003a 0000003d

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000005

/dev/input/event2: 0003 0034 00000001

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000678

/dev/input/event2: 0003 003a 0000003d

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000005

/dev/input/event2: 0003 0034 00000001

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000678

/dev/input/event2: 0003 003a 0000003c

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000005

/dev/input/event2: 0003 0034 00000001

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000678

/dev/input/event2: 0003 003a 0000003c

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000005

/dev/input/event2: 0003 0034 00000001

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000114

/dev/input/event2: 0003 0036 00000679

/dev/input/event2: 0003 003a 0000003a

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000004

/dev/input/event2: 0003 0034 00000000

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000115

/dev/input/event2: 0003 0036 00000679

/dev/input/event2: 0003 003a 00000035

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000004

/dev/input/event2: 0003 0034 00000000

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000115

/dev/input/event2: 0003 0036 00000679

/dev/input/event2: 0003 003a 0000002f

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000004

/dev/input/event2: 0003 0034 00000000

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0003 0035 00000115

/dev/input/event2: 0003 0036 00000679

/dev/input/event2: 0003 003a 0000001e

/dev/input/event2: 0003 0032 00000005

/dev/input/event2: 0003 0033 00000003

/dev/input/event2: 0003 0034 00000000

/dev/input/event2: 0003 0039 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

/dev/input/event2: 0000 0002 00000000

/dev/input/event2: 0000 0000 00000000

 

각 줄의 앞부분을 보니 저의 터치 장비는 /dev/input/event2 네요.

 

/dev/input/event2: 0003 0035 00000113

/dev/input/event2: 0003 0036 00000677

[이벤트 보낼장치]: [type] [code] [value]

 

type:

자세한 내용은 링크 참조:
https://www.kernel.org/doc/Documentation/input/event-codes.txt

 

* EV_SYN: - 디바이스 이벤트끼리 동기화시기키 위해 사용 됨. -> 0x00

* EV_KEY: - 키 기반의 디바이스 이벤트를 처리하기 위해 사용 됨. -> 0x01 * EV_ABS: - 절대 좌표값을 처리하기 위해 사용 됨. -> 0x03


/dev/input/event2: 0003 0035 00000113

-> /dev/input/devnt2장치에서 EV_ABS라는 타입의 이벤트가 발생하였다는 것을 알 수 있음.



adb shell sendevent /dev/input/event2 3 53 564

adb shell sendevent /dev/input/event2 3 54 1448

adb shell sendevent /dev/input/event2 3 58 44

adb shell sendevent /dev/input/event2 3 50 4

adb shell sendevent /dev/input/event2 3 51 4

adb shell sendevent /dev/input/event2 3 52 1

adb shell sendevent /dev/input/event2 3 57 0

adb shell sendevent /dev/input/event2 0 2 0

adb shell sendevent /dev/input/event2 0 0 0

adb shell sendevent /dev/input/event2 0 2 0

adb shell sendevent /dev/input/event2 0 0 0

 

16진수를 10진수로 변경해주고 getevent 켜 놓고 터치했을 때 맨 마지막 패턴으로 제어하면 됨.

 

참고:

https://sites.google.com/site/sbobovyc/home/Programming/a/uinput

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼