Я недавно обнаружил, что могу подключить беспроводную клавиатуру и мышь к телефону, используя адаптер 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 для успешной настройки такой вещи?