안녕하세요. 터치 이벤트를 가져오려고 방법을 찾고 있습니다. 몇가지 시도를 해 보았는데 초보라 그런지 쉽지가 않네요.
중간에 터치를 가로채는 방법은 아센 이후엔 안되는 것 같고.. 그래서 adb를 이용해 기록하려고 합니다.
그래서 getevent명령어로 확인되는 내용을 (디바이스 내)파일로 저장하고자 하는데 원하는대로 동작하질 않네요..
커맨드창에서
> adb shell /system/bin/sh /storage/sdcard0/eventtest.sh
와 같이 실행하면 eventtest.sh 내에 명시된 파일 (예 a.txt)에 터치 기록이 잘 남습니다.
(쉘 내용은 getevent -t -l /dev/input/event2 > /storage/sdcard0/a.txt 와 같습니다.)
문제는, 아래와 같이 패키지 내 자바 코드로
process = Runtime.getRuntime().exec("adb shell /system/bin/sh /storage/sdcard0/eventtest.sh");
와 같이 접근했을 때 결과가 남지 않는다는 것 입니다.
명령어를 string 배열에도 넣어봤고, adb shell getevent > /storage/sdcard0/a.txt 이런 방법으로도 해봤는데
커맨드 창에서는 먹히는 것들도 여기선 반응이 없네요..
(참고로 루트 권한은 없습니다)
getevent 명령이 실행됐을 때 끝나지 않고 계속 돌면서 사용자의 입력을 받는 것과 관련이 있는 것 같은데, 구글링을 열심히 해봐도 답을 찾지 못해 이렇게 도움 요청합니다. (그리고 이런 명령어를 뭐라고 하나요? cd, ls 와 같은 명령은 결과를 내고 끝나는데 이렇게 대기하고 있는 명령이요.)
adb connect로 디바이스에 접속하고 pc에 기록을 남겨도 되지만 네트워크에 관계없이 항상 안드로이드 디바이스에 기록하고 싶습니다. 다른방법도 괜찮으니 방법이 있으면 코멘트를 남겨주시면 정말 감사하겠습니다. 참고로 악의적인 목적으로 개발하는 것은 절대 아닙니다^^;
글이 두서가 없네요. 질문이 크게 두가지인데 어떤 것도 괜찮고 혹 답이 아니라도 괜찮으니 관련된 내용으로 덧글 남겨주시면 정말 감사하겠습니다.