Как получить экземпляр активности переднего плана?

Я хочу создать служебное приложение, которое своевременно отправляет события касания экрана на передний план. Активность переднего плана, вероятно, является приложением 3pp.

Мои коды:

public void myClickEvent(float x, float y) {
    long firstTime = SystemClock.uptimeMillis();
    final MotionEvent firstEvent = MotionEvent.obtain(firstTime, firstTime,
            MotionEvent.ACTION_DOWN, x, y, 0);

    long secondTime = firstTime + 100;
    final MotionEvent secondEvent = MotionEvent.obtain(secondTime,
            secondTime, MotionEvent.ACTION_UP, x, y, 0);

    dispatchTouchEvent(firstEvent);
    dispatchTouchEvent(secondEvent);
}

Но у Сервиса нет dispatchTouchEvent(), как у Активности. Единственный способ - получить экземпляр активности переднего плана в моем сервисе. Как это сделать? Большое спасибо за ваше предложение.


person Led    schedule 28.05.2013    source источник


Ответы (1)


Вы можете: 1. Перехватить событие в своем действии A. 2. Отправить данные в действие B. Вы можете использовать BroadcastReceiver.

Если вам нужно отправлять широковещательные сообщения между приложениями: http://developer.android.com/reference/android/content/BroadcastReceiver.html

person mromer    schedule 28.05.2013
comment
На самом деле активность А, которая выполняется на переднем плане, создана не мной. Это может быть любое приложение, которое я не могу изменить, например, настройки, игры и т. д. Единственное, что я знаю, это то, что действие A может обрабатывать событие касания экрана, но как я могу узнать, что такое текущее действие A в моем действии B? - person Led; 29.05.2013