2013-09-10 2 views
7

Я знаю, что это немного повторяющийся вопрос. Я рассмотрел различные вопросы по SO и нескольким другим сайтам, но не смог найти ни одного ответа, который удовлетворяет мои потребности.Android touch touch event

Требование

1) У меня есть X, Y координаты, я хочу создать MotionEvent и направить его к самой высокой активности/зрения.

2) Я должен ввести его в свое приложение. Поэтому Разрешение Inject_Events не требуется.

3) Пока у меня есть координаты, Я не знаю, активность или вид, которые находятся в этом положении. Поэтому Activity.dispatchTouchEvent не работает для меня.. (view.dispatchTouchEvent будет работать, но я не знаю этого представления).

4) Инструментарий не помогает ни, потому что у них нет единого метода для ввода события касания в точке x, y.

5) InputManager имеет скрытый метод injectInputEvent, но я не знаю Как получить доступ к инъекцииВведите и скомпилируйте его?

Любая помощь оценена!

ответ

1

Для большей группы - rootViewController.dispatchTouchEvent (вместо activity.rootViewController) работает как шарм.

+0

Как получить rootViewController? – Behnam

5
dispatchTouchEvent(MotionEvent.obtain(
        SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), 
        MotionEvent.ACTION_DOWN, Xinput, Yinput, 0)); 

Нет необходимости указывать представление, событие будет регистрироваться на переднем плане. Замените Xinput и Yinput вашими значениями.