마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Instrumentation클래스로 터치이벤트를 강제로 발생하여, 다른 뷰를 터치하는 방법 ... ?

0 추천

안녕하세요. 초보개발자입니다.

제가 하고싶은 일은, 특정 버튼을 클릭 시, 해당 위치의 뷰를 클릭하는 작업입니다 ...

상하좌우 버튼을 만들어, x, y 좌표를 수정하고, 클릭 버튼을 만들어, 누르면 Instrumentation클래스의 snedPointerSync메서드로 해당 x, y좌표에 대해 클릭이 되는 방식이거든요 ...

문제는, 터치 이벤트는 잘 뜨는데(로그캣), 도통 해당위치에 가도, 뷰가 눌러지질 않습니다 ...

클릭버튼의 클릭이벤트 내부 소스코드를 대충 첨부해봅니다 ...

 

 

  1. new Thread() {
  2.     public void run() {
  3.         MotionEvent event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
  4.         new Instrumentation().sendPointerSync(event);
  5.     }
  6. }.start();
  7.            
  8. Log.i("TAG""click x, y : " + x + ", " + y)// 버튼으로 조작한 x, y좌표
  9. Log.i("TAG""btn x, y : " + btnMap.get(NEXT).getX() + ", " + btnMap.get(NEXT).getY())// 원격터치할 뷰(버튼)의 x, y좌표

 

03-08 01:54:39.404: D/GestureDetector(23041): [Surface Touch Event] mSweepDown False, mLRSDCnt : -1 mTouchCnt : 2 mFalseSizeCnt:0
 
클릭 버튼을 누를때마다 뜨는 로그캣 로그구요 ...
 
제 접근방법이 틀린것인지는 모르겠으나, 이것으로 하루종일 막히고 고민중에 있습니다 ... 고수님들의 지식이 필요합니다. 도움 주셔서 감사합니다.
refeel (210 포인트) 님이 2013년 3월 8일 질문
refeel님이 2013년 3월 8일 수정

1개의 답변

0 추천
자동 터치는 모르겠고 자동 클릭은 버튼속성중에 performedaction 인가 있음.. 액션퍼폼인가 퍼폼액션...

강제클릭 대신에 메소드 호출을 안하고 왜 이렇게 하는지 이유가 궁금하네요
ankarkied (3,210 포인트) 님이 2013년 3월 8일 답변
그런방법도 있었군요. 제가 안드로이드를 처음 시작하는지라, 인터넷과 책을 뒤죽박죽 참고하며 구현하다보니 빠트렸나보네요 ... 좋은말씀 감사합니다.
...