해표
HapyoLab
해표
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • IT (53)
    • 자전거 여행 (14)
    • DevOps (8)
    • Cloud (1)
    • OS (0)
    • Android (0)
    • Programming (0)

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
해표

HapyoLab

IT

adb 클릭 이벤트 좌표 값 얻기

2013. 11. 19. 17:03

명령어 : 안드로이드 에뮬레이터기반 실시간 좌표값 구하기


c:\>adb shell getevent


하면 실시간 클릭 이벤트 좌표 값이 찍힌다.


좌표값은 아래와 같은 구조로 찍히고 event7이 물리적인 마우스를 뜻한다. 

=====================================

add device 1: /dev/input/event7

  name:     "androVM Virtual Input"

could not get driver version for /dev/input/mouse3, Not a typewriter

add device 2: /dev/input/event6

  name:     "androVM via VirtualBox seamless mouse"

could not get driver version for /dev/input/mouse2, Not a typewriter

add device 3: /dev/input/event5

  name:     "androVM via VirtualBox PS/2 mouse"

could not get driver version for /dev/input/mouse1, Not a typewriter

add device 4: /dev/input/event4

  name:     "VirtualBox mouse integration"

add device 5: /dev/input/event1

  name:     "Sleep Button"

add device 6: /dev/input/event0

  name:     "Power Button"

could not get driver version for /dev/input/mouse0, Not a typewriter

add device 7: /dev/input/event3

  name:     "ImExPS/2 Generic Explorer Mouse"

add device 8: /dev/input/event2

  name:     "AT Translated Set 2 keyboard"


/dev/input/event7: 0001 014a 00000001

/dev/input/event7: 0003 003a 00000001

/dev/input/event7: 0003 0035 0000015f

/dev/input/event7: 0003 0036 000004d9

/dev/input/event7: 0000 0002 00000000

/dev/input/event7: 0000 0000 00000000

/dev/input/event7: 0001 014a 00000000

/dev/input/event7: 0003 003a 00000000

/dev/input/event7: 0000 0002 00000000

/dev/input/event7: 0000 0000 00000000

===========================================


/dev/input/event7: 0001 014a 00000001


굵게 표시된 부분이 좌표값인데 16진수로 표기되있고 한 라인이 클릭 한번 좌표값이 아니고 위에 보이는 전체가 하나의 클릭 이벤트 값이 되기 때문에 스크립트 언어 만들어주면 클릭 할 수 있는 명령어로 보낼 수 있다.


Python으로 표현하자면 아래와 같은 형태로 10진수 변환하여 넣어주면 클릭할 수 있다.


os.system("adb shell sendevent /dev/input/event7 1 330 1")

os.system("adb shell sendevent /dev/input/event7 3 58 1")

os.system("adb shell sendevent /dev/input/event7 3 53 46")

os.system("adb shell sendevent /dev/input/event7 3 54 247")

os.system("adb shell sendevent /dev/input/event7 0 2 0")

os.system("adb shell sendevent /dev/input/event7 0 0 0")

os.system("adb shell sendevent /dev/input/event7 1 330 0")

os.system("adb shell sendevent /dev/input/event7 3 58 0")

os.system("adb shell sendevent /dev/input/event7 0 2 0")

os.system("adb shell sendevent /dev/input/event7 0 0 0")





저작자표시 (새창열림)
    'IT' 카테고리의 다른 글
    • adb shell을 이용한 앱 패키지 삭제
    • adb shell root 권한으로 실행하기
    • Genymotion player.exe 오류
    • 넥서스 7 스마트 커버 구입!!
    해표
    해표

    티스토리툴바