Android: есть ли способ имитировать события D-Pad (API 10)?

Задача очень простая. Мне нужно имитировать события dpad (ВВЕРХ, ВНИЗ, ВПРАВО, ВЛЕВО, ЦЕНТР) для навигации в моем графическом интерфейсе, который состоит из множества кнопок и других элементов. С помощью симулятора D-Pad я могу без строчного кода перемещаться по этому графическому интерфейсу. Но как я могу сделать это программно?

Я много пробовал безуспешно:

  • KeyEvent event = new KeyEvent (KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT); View.dispatchKeyEvent (событие); Ничего не происходит (фокус должен переместиться на один элемент вправо)

  • Я также много читал о windowManager.injectKeyEvent, но не нашел ничего, что работает.

  • Кроме того, Instrumentation может помочь имитировать ключевые события, но больше для тестирования, а не для использования в самом приложении.

Я думаю, что есть решение, потому что Talkback может имитировать физический D-Pad ( http://code.google.com/p/eyes-free/source/browse/trunk/ime/latinime/src /com/googlecode/eyesfree/inputmethod/latin/LatinIME.java)

7
задан mkj 27 November 2016 в 14:12
поделиться