안녕하세요! 일반고에 다니는 흔한 고3 학생입니다!
제가 안드로이드 어플리케이션을 개발하고 있는데요,
루팅된 기기에 이 앱을 깔면,
이 앱이 자체적으로 Intent로 홈 키를 누르고, 그 홈 화면에 일정 좌표에 터치 이벤트를 주게 하게끔 하려고 합니다!
(좌표가 일정한게 아니고, 사용자가 정하는 거라서 몽키 테스트로 만들게 되면 터치 이벤트 한번 줄 때마다 txt파일 임의로 만들어서 해야하는 불상사가 생기게 되었습니다 ㅠ)
그래서 저는 adb shell을 이용해서 다음과 같은 함수 global.sudo(String)를 만들어서
자바에서 쉽게 sudo 명령이 필요한 input을 넣을 수 있게 되었습니다.
global.sudo("input swipe 1000 200 200 200");//홈으로 돌아가도 작동 잘 된다.
global.sudo("input tap 1081 705");//루팅된 갤럭시 탭에서 실행 잘 됨
이는 루팅된 기기를 PC와 연결 후 다음과 같은 adb shell 코드를 실행했을 때와 똑같은 역할을 합니다
(노란 부분은 실제 입력한 부분입니다.)
그런데, 여기서 문제가 있습니다!
저는 이것을 dispatchTouchEvent 와 같이 다양한 터치 이벤트를 주고 싶은데,
dispatchTouchEvent는 제가 만든 어플리케이션 밖의 다른 어플리케이션에게 터치이벤트를 줄 수 없습니다!
적어도, dispatchTouchEvent에서
MotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE, MotionEvent.ACTION_UP은 만들어야 하는데 말이죠..
이 input이 갖고있는 커맨드는 다음과 같습니다..
아래 노란색 글씨를 주목해주세요!
제가 궁금한 것은 다음과 같습니다!
제가 구상하던 ACTION_DOWN, MOVE, UP을 위의 메서드로 구현할 수 있을까요??? ㅜㅜ
혹은, input이 아닌 다른 shell 코드로 ACTION_DOWN, MOVE, UP을 구현할 수 있을까요?
답변해 주시면 대단히 감사드리겠습니다!!