안녕하세요..
adb shell sendevent를 이용해서 마우스 클릭이나 드래그를 구현해보려고 하는데요..
물론 adb shell input tap/swipe 로 가능하지만 sendevent를 이용하면 좀 더 응용이 가능할 것 같아서요..
그래서, 테일스타랑 인터넷 검색해보고 아래와 같이 마우스 클릭하는 구문을 만들어봤어요..
(일단 사용기기는 블루스택이고요.. getevent로 정보를 얻어보니 event 번호는 7번이던구요..)
; mouse down
adb -s "기기번호" shell sendevent /dev/input/event7 3 57 1 ; ID 번호
adb -s "기기번호" shell sendevent /dev/input/event7 3 53 x ; x좌표
adb -s "기기번호" shell sendevent /dev/input/event7 3 54 y ; y좌표
adb -s "기기번호" shell sendevent /dev/input/event7 3 58 p ; 압력 p
adb -s "기기번호" shell sendevent /dev/input/event7 1 330 1 ; 마우스 다운
adb -s "기기번호" shell sendevent /dev/input/event7 0 0 0
; mouse up
adb -s "기기번호" shell sendevent /dev/input/event7 3 57 -1 ; ID 번호
adb -s "기기번호" shell sendevent /dev/input/event7 1 330 0 ; 마우스 업
adb -s "기기번호" shell sendevent /dev/input/event7 0 0 0
그런데 이게 전~혀 작동을 하지 않네요..ㅎㅎ;;
혹시 도움 주실 분 계실까요?? ㅎㅎ
그럼 즐거운 주말 보내세요~~
감사합니다~
--------------------------------------------------------------------------------
(추가 질문)
글 쓴 이후에 추가적으로 더 테스트를 진행을 해보고 있는데요..
블루스택을 켤때마다 event 번호가 달라질수도 있나요??
지난 번 테스트할 때는 분명히 event7 이었는데, 다시 테스트를 하려고 하니 이번에는 event8 이네요..;;
그리고, getevent로 마우스 클릭을 했을 때 나오는 신호(??)를 확인해보니 아래처럼 나오는데요..
; 마우스 다운
/dev/input/event8: 0003 0035 00004118
/dev/input/event8: 0003 0036 00005460
/dev/input/event8: 0000 0002 00000000
/dev/input/event8: 0000 0000 00000000
; 마우스 업
/dev/input/event8: 0000 0002 00000000
/dev/input/event8: 0000 0000 00000000
이렇게만 나오는게 정상인가요??
구글링 해서 찾아본 사이트에는 더 길게 나오는 것 같은데 뭔가 너무 단순히 나오는거 같아서요..ㅎㅎ;;
네 이벤트 번호는 고정이 아닙니다.
샌드이벤트로 클릭을 구현하시려면 스크립트 초반에 이벤트 번호를 확인하는 코드를 먼저 넣어줘야 합니다