фоновый сервис Android, который запускает ручные события - PullRequest
0 голосов
/ 05 мая 2018

Я недавно обнаружил, что могу подключить беспроводную клавиатуру и мышь к телефону, используя адаптер OTG. Мой телефон теперь имеет всегда доступную физическую клавиатуру и курсор.

Мне было любопытно, если бы я мог перенаправить ввод с клавиатуры, чтобы предварительно преобразовать различные события касания вручную, когда они не используются для фактической печати. Например, я хочу, чтобы различные клавиши вызывали ручной щелчок в соответствующих областях для перезагрузки, приседания, стрельбы, перемещения и т. Д. В мобильном телефоне PUBG.

В активном действии я могу записать событие клавиатуры следующим образом:

public class MainActivity implements KeyEvent.Callback {
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) { ... }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) { ... }
    @Override
    public boolean onKeyMultiple(int keyCode, int count, KeyEvent event) { ... }
    @Override
    public boolean onKeyLongPress(int keyCode, KeyEvent event) { ... }
}

Я не знаком с фоновыми операциями на Android, но на странице разработчика поверх просмотра фоновых сервисов прямо говорится, что:

Он не может напрямую взаимодействовать с вашим пользовательским интерфейсом. Чтобы поместить его результаты в пользовательский интерфейс, вы должны отправить их в действие.

Рабочие запросы выполняются последовательно. Если операция выполняется в IntentService, и вы отправляете ему еще один запрос, запрос ожидает завершения первой операции.

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

Какие еще есть варианты?

Кроме того, я был бы забанен с мобильного телефона PUBG для успешной настройки такой вещи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...