안녕하세요.
강제로 Touch값을 날리는 작업을 하고 있는데요....
여기 저기 찾아보니까...
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis();
MotionEvent event = MotionEvent.obtain(downTime, eventTime,
MotionEvent.ACTION_DOWN, 100,100, 0);
MotionEvent event2 = MotionEvent.obtain(downTime, eventTime,
MotionEvent.ACTION_UP, 100, 100, 0);
new Instrumentation().sendPointerSync(event);
new Instrumentation().sendPointerSync(event2);
이런식으로 Instrumentation을 사용하면 되는데요....
문제는 제 어플리케이션외에 다른 쪽에 터치데이터가 나가면 에러가 나네요...
첨부 파일은 error 내용입니다.
다른 어플리케이션을 접근했다고 INJECT_EVENT permission 에러가 나네요.....
그래서 추가해도 안되길래 봤던..... 플랫폼 키를 알지 못하는 한 안된다고 하네요...
혹시 다른 방법으로 화면 전체를 강제로 Touch 데이터를 날려서 제어가 가능할까요??
물론 adb shell이나 이런걸로 말고... 단순 어플리케이션으로 말입니다
답변 부탁드리겠습니다.
감사합니다.




저도 이 부분에 대해서 찾아본 결과 말씀하신 방법은 일단은 불가능 한 것 같습니다.
이론 상으로도 자기자신 이외에 다른 어플에 접근한다는 자체가 보안에 취약한 문제가 되서
루팅된 폰이 아니라면 불가능할 것 같습니다.
해보진 않았지만 루팅된 폰이라면 해당 어플을 시스템 어플로 등록하시면 가능할 것 같습니다.