안드로이드 터치, 스크롤 이벤트 발생하기

안드로이드에서 터치나 스크롤 이벤트를 발생시키기 위해서는 루팅을 한 뒤 MotionEvent 를 이용해야 한다.
그런데 MotionEvent.obtain 을 이용해서 터치를 시뮬레이션하는게 꽤나 골치아픈 일인지라, 이보다는 안드로이드가 리눅스 기반이라는 점을 이용해서 시스템 명령어를 쓰는 게 훨씬 간편하다.
http://www.programering.com/a/MDO3kzMwATQ.html
를 참고하여,

스크롤 이벤트 :

Runtime.getRuntime().exec(
  new String[] {"/system/bin/input", "swipe",
        Integer.toString(fromX), Integer.toString(fromY),
        Integer.toString(toX), Integer.toString(toY),
        "500"});

터치 이벤트 :

Rect bounds = new Rect();
            node.getBoundsInScreen(bounds);
            Runtime.getRuntime().exec(new String[] {"/system/bin/input", "tap",
                    String.valueOf(bounds.centerX()) , String.valueOf(bounds.centerY())});

이런 식으로 구현하면 된다.

댓글

이 블로그의 인기 게시물

Confluence 에서 Export PDF 로 내보낼 때 Code Block 에서 한글 깨짐

pandas.read_csv() 에서 왠만하면 컬럼타입을 지정하자

스프링 컨텍스트 설정파일과 URI 경로를 제대로 못찾는 삽질