ADB를 사용하여 이벤트 터치를 전화로 보내지 만 해제 할 수 없음

크리스 D

CM13을 실행하는 HTC 10이 있습니다. ADB를 통해 터치 이벤트를 보내고 이것을 보낸 후 이벤트를 보내려고합니다.

adb shell
sendevent /dev/input/event6 3 57 0
sendevent /dev/input/event6 3 53 300
sendevent /dev/input/event6 3 54 400
sendevent /dev/input/event6 3 48 5
sendevent /dev/input/event6 3 58 50
sendevent /dev/input/event6 0 2 0
sendevent /dev/input/event6 0 0 0

쇼 터치가 켜진 상태에서 전화를 클릭하면 터치가 시작된 것을 볼 수 있지만 터치는 여전히 전화에서 활성화되어 있습니다.

여기여기 뿐만 아니라 다른 곳에서 읽은 내용을 기반으로 할 때해야 할 일은 다음과 같습니다.

sendevent /dev/input/event6 3 57 -1
sendevent /dev/input/event6 0 2 0
sendevent /dev/input/event6 0 0 0

아니면 그냥

sendevent /dev/input/event6 3 57 -1
sendevent /dev/input/event6 0 0 0

그러나 이러한 명령 중 어느 것도 전화에서 터치가 종료되지 않습니다.

나는이 모든 것을 전화 자체의 쉘 스크립트에 넣고 adb 쉘에서 스크립트를 실행하려고 시도했지만 결과는 똑같습니다. 터치의 시작이지 끝이 아닙니다.

해리 맥

귀하의 환경은 없지만 문제를 조사했습니다. 당신이했던 것처럼 항상 어떤 사람들에게는 효과가 있지만 다른 사람들에게는 그렇지 않은 것 같은 다양한 기사가 있습니다. 전화-하드웨어 / 안드로이드-버전 / SDK- 버전의 조합 사이에 차이가있어서 모든 설정에 대해 하나의 솔루션이 없다는 것이 내 결론입니다.

자신에게 적합한 것이 무엇인지 찾아야합니다. 소프트웨어의 주요 업데이트는 항상 시작점으로 돌아갈 수 있음을 명심하십시오.

내가 찾은 가장 간단한 방법은 다음 input tap x y명령 을 사용하는 것입니다 .

adb shell input tap x y

모든 input버전에 tap매개 변수 가있는 것은 아니지만 인수없이 시작하면 사용 가능한 모든 매개 변수와 구문이 인쇄됩니다.

shell@m0:/ $ input
input
usage: input ...
       input text <string>
       input keyevent <key code number or name>
       input [touchscreen|touchpad|touchnavigation] tap <x> <y>
       input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)]
       input trackball press
       input trackball roll <dx> <dy>

또 다른 방법은 Getevent 를 사용 하여 화면을 터치 할 때 발생하는 이벤트를 기록하는 것입니다. 여기 에서 가져온 것처럼 :

일련의 이벤트 기록

  1. 파일에 데이터를 기록하도록 PC 설정 ( /tmp/android-touch-events.log)

    $ adb shell getevent | grep --line-buffered ^/ | tee /tmp/android-touch-events.log
    
  2. 전화로 뭔가 좀 해
  3. 다음을 사용하여 PC에서 adb 명령을 중지하십시오. ctrl-c

기록 된 이벤트 재생

이 명령은 16 진수 변환을 수행합니다. awk

$ awk '{printf "%s %d %d %d\n", substr($1, 1, length($1) -1), strtonum("0x"$2), strtonum("0x"$3), strtonum("0x"$4)}' /tmp/android-touch-events.log | xargs -l adb shell sendevent

Getevent가 매개 변수를 16 진수로 표시하지만 위의 스크립트가 수정하려고하는 10 진수 입력 만 허용한다는 점에 유의하세요.

monkeyrunner는 입증대로 사용할 수 있다는 또 다른 도구입니다 여기 :

다음 과 같이 monkeyrunner 를 사용할 수 있습니다 .

$ monkeyrunner
>>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
>>> device = MonkeyRunner.waitForConnection()
>>> device.touch(200, 400, MonkeyDevice.DOWN_AND_UP)

드래그를하거나 활동을 시작할 수도 있습니다 . MonkeyDevice api를 살펴보세요 .

참조 :

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

클릭 이벤트의 전단지 마커를 한 번만 표시하도록 제한 할 수 없음

분류에서Dev

PHP Mysql $ Id 문제는 매개 변수로 $ id 만 사용하여 데이터를 검색 할 수 없음

분류에서Dev

Azure WebJobs에서 Ninject를 사용하지만 내 DB 클라이언트를 전달할 수 없음

분류에서Dev

Wireshark를 사용하여 트래픽을 캡처 할 수 없음 (802.11 만 해당)

분류에서Dev

모듈로를 사용하여 피보나치 솔루션을 이해할 수 없음

분류에서Dev

cfdisk를 사용하여 vfat를 Linux로 변환했지만 이제 마운트 할 수 없습니다.

분류에서Dev

Android 웹보기를 사용하여 웹 사이트에 내 이미지를 업로드 할 수 없습니다.

분류에서Dev

PHP로 jQuery 데이터를 직렬화 해제 할 수 없음

분류에서Dev

컴퓨터 이름을 사용하는 명령 프롬프트에서 ping에 "대상 호스트에 연결할 수 없음"이라고 표시되지만 Ip 주소를 사용하여 ping 할 때 제대로 작동합니다.

분류에서Dev

adb를 통해 APK를 설치하면 이전 APK를 삭제할 수 없습니다.

분류에서Dev

nc를 사용하여 호스트에 대한 경로가 없지만 ping 할 수 있음

분류에서Dev

ssh를 사용하여 작업중인 원격 호스트 데이터베이스 연결이지만 laravel 5를 사용하여 연결할 수 없음

분류에서Dev

JQuery를 사용하여 페이지로드에서 onchange 이벤트를 트리거 할 수 없습니다.

분류에서Dev

오류 CS0122를 제공하는 이벤트 바인딩에 대한 x : Bind 구문 : 보호 수준으로 인해 액세스 할 수 없음

분류에서Dev

디버그 브리지를 만들 수 없음 : adb 서버를 시작할 수 없음 : adb 버전을 감지 할 수 없음

분류에서Dev

Java를 사용하여 GUI를 만들려고하지만 원하는 방식으로 구현할 수 없음

분류에서Dev

PHP를 사용하여 Facebook 페이지에 비디오를 업로드 할 수 없지만 curl을 사용할 수 있음

분류에서Dev

창을 설치하고 만자로를 제거 할 수 없음

분류에서Dev

매일 sp를 트리거하는 MySQL 이벤트를 만들었지 만 내 이벤트는 하루 간격으로 sp를 호출합니다. 이 문제를 해결할 수있는 방법이 있습니까?

분류에서Dev

workbook_sheetchange 이벤트를 사용하여 행 범위 내에서 숫자 값을 음수로 만들기

분류에서Dev

ffmpeg를 사용하여 gif를 만들 수 없음 : gif를 생성하지만 재생할 수 없음

분류에서Dev

이전에 가입 쿼리로 만든 해시 암호를 사용하여 로그인 할 수 없습니다.

분류에서Dev

Javascript) addEventListener를 사용하여 'mouseover'를 사용했지만 작동하지 않습니다. 나는 문제를 이해할 수 없다

분류에서Dev

npm 설치로 내 문제를 해결할 수 없음

분류에서Dev

암호없이 이전에 암호화 된 메시지를 해독 할 수 있지만 GPG 개인 키를 내보낼 수 없습니다.

분류에서Dev

bash를 사용하여 0 바이트 파일 찾기를 수행해야하지만 삭제하기 전에 존재 여부를보고해야합니다.

분류에서Dev

SQL-NOT EXIST를 사용하여 데이터를 제외 할 수 없음

분류에서Dev

텍스트 필드에 자동으로 하이픈을 추가하지만 텍스트 필드를 편집 할 수 없음 (전화 번호 마스킹)

분류에서Dev

Jquery, Ajax를 사용하여 페이지를 새로 고치지 않고 양식을 제출할 때 데이터베이스를 읽을 수 없습니다.

Related 관련 기사

  1. 1

    클릭 이벤트의 전단지 마커를 한 번만 표시하도록 제한 할 수 없음

  2. 2

    PHP Mysql $ Id 문제는 매개 변수로 $ id 만 사용하여 데이터를 검색 할 수 없음

  3. 3

    Azure WebJobs에서 Ninject를 사용하지만 내 DB 클라이언트를 전달할 수 없음

  4. 4

    Wireshark를 사용하여 트래픽을 캡처 할 수 없음 (802.11 만 해당)

  5. 5

    모듈로를 사용하여 피보나치 솔루션을 이해할 수 없음

  6. 6

    cfdisk를 사용하여 vfat를 Linux로 변환했지만 이제 마운트 할 수 없습니다.

  7. 7

    Android 웹보기를 사용하여 웹 사이트에 내 이미지를 업로드 할 수 없습니다.

  8. 8

    PHP로 jQuery 데이터를 직렬화 해제 할 수 없음

  9. 9

    컴퓨터 이름을 사용하는 명령 프롬프트에서 ping에 "대상 호스트에 연결할 수 없음"이라고 표시되지만 Ip 주소를 사용하여 ping 할 때 제대로 작동합니다.

  10. 10

    adb를 통해 APK를 설치하면 이전 APK를 삭제할 수 없습니다.

  11. 11

    nc를 사용하여 호스트에 대한 경로가 없지만 ping 할 수 있음

  12. 12

    ssh를 사용하여 작업중인 원격 호스트 데이터베이스 연결이지만 laravel 5를 사용하여 연결할 수 없음

  13. 13

    JQuery를 사용하여 페이지로드에서 onchange 이벤트를 트리거 할 수 없습니다.

  14. 14

    오류 CS0122를 제공하는 이벤트 바인딩에 대한 x : Bind 구문 : 보호 수준으로 인해 액세스 할 수 없음

  15. 15

    디버그 브리지를 만들 수 없음 : adb 서버를 시작할 수 없음 : adb 버전을 감지 할 수 없음

  16. 16

    Java를 사용하여 GUI를 만들려고하지만 원하는 방식으로 구현할 수 없음

  17. 17

    PHP를 사용하여 Facebook 페이지에 비디오를 업로드 할 수 없지만 curl을 사용할 수 있음

  18. 18

    창을 설치하고 만자로를 제거 할 수 없음

  19. 19

    매일 sp를 트리거하는 MySQL 이벤트를 만들었지 만 내 이벤트는 하루 간격으로 sp를 호출합니다. 이 문제를 해결할 수있는 방법이 있습니까?

  20. 20

    workbook_sheetchange 이벤트를 사용하여 행 범위 내에서 숫자 값을 음수로 만들기

  21. 21

    ffmpeg를 사용하여 gif를 만들 수 없음 : gif를 생성하지만 재생할 수 없음

  22. 22

    이전에 가입 쿼리로 만든 해시 암호를 사용하여 로그인 할 수 없습니다.

  23. 23

    Javascript) addEventListener를 사용하여 'mouseover'를 사용했지만 작동하지 않습니다. 나는 문제를 이해할 수 없다

  24. 24

    npm 설치로 내 문제를 해결할 수 없음

  25. 25

    암호없이 이전에 암호화 된 메시지를 해독 할 수 있지만 GPG 개인 키를 내보낼 수 없습니다.

  26. 26

    bash를 사용하여 0 바이트 파일 찾기를 수행해야하지만 삭제하기 전에 존재 여부를보고해야합니다.

  27. 27

    SQL-NOT EXIST를 사용하여 데이터를 제외 할 수 없음

  28. 28

    텍스트 필드에 자동으로 하이픈을 추가하지만 텍스트 필드를 편집 할 수 없음 (전화 번호 마스킹)

  29. 29

    Jquery, Ajax를 사용하여 페이지를 새로 고치지 않고 양식을 제출할 때 데이터베이스를 읽을 수 없습니다.

뜨겁다태그

보관