안녕하세요! 제가 adb shell을 통해 안드로이드 디바이스에 터치 이벤트를 가하는 실험을 하고 있었습니다.
$ input tap 320 110
같은건 당연이 (320,110)에 터치이벤트가 잘 작동하였습니다.
그런데 이를 대신하여
이 링크를 참고아혀 아래와 같이 shell 코드를 적었습니다.
$ su
sendevent /dev/input/event1 3 57 7
sendevent /dev/input/event1 3 53 320
sendevent /dev/input/event1 3 54 110
sendevent /dev/input/event1 3 48 0
sendevent /dev/input/event1 3 58 38
sendevent /dev/input/event1 3 63 6
sendevent /dev/input/event1 0 0 0
# 320, 110에 ACTION_DOWN
sendevent /dev/input/event1 3 57 -1
sendevent /dev/input/event1 0 0 0
# ACTION_UP
을 실행하였는데요, 터치 이벤트 자체는 작동을 하는데
이게 엉뚱한 좌표로 터치가 됩니다 ㅠㅠ
그 이유를 알아보기 위해, 안드로이드 터치 이벤트의 패라미터로 받아오는 좌표계를 탐구해 보았습니다.
일단 화면의 전체 크기를 알아보았습니다.
스크린샷을 찍고 크기를 측정하거나
Display mdisp = getWindowManager().getDefaultDisplay();Point mdispSize = new Point();mdisp.getSize(mdispSize);int maxX = mdispSize.x; int maxY = mdispSize.y;
위와 같은 코드를 쓰면, 제 디바이스의 화면 크기는 (1280,800)가 나옵니다...
그런데, shell에 $getevent를 실행시키고, 화면의 맨 오른쪽 아래를 눌러보면
위의 16진법을 10진법으로 번역해보면(노란색) 크기가 (4067, 4072) 정도가 나오는것 같습니다...
제 생각에는 아마 전체 크기가 (fff, fff)라고 정의한거 같은데요...
여튼, 이 두개의 방법으로 구한 화면 크기가 너무 차이가 나서
이게 왜 이렇게 되는지...... (fe3, fe8)같은 좌표계의 크기는 어떻게 구할 수 있는지 알고 싶습니다 ㅠㅠ
답변해주시면 정말 감사드리겠습니다!