Как заставить службу специальных возможностей реагировать на нажатие кнопок клавиатуры? ⇐ Android
Как заставить службу специальных возможностей реагировать на нажатие кнопок клавиатуры?
Я пытаюсь создать специальную службу специальных возможностей Android для имитации касаний экрана при нажатии разных клавиш на клавиатуре Bluetooth.
Я новичок в разработке приложений для Android за пределами Flutter, поэтому подозреваю, что проблема кроется где-то в XML-файле манифеста или конфигурации доступности, а не в коде Kotlin.
Начав с пустого действия в Android Studio, я добавил в AndroidManifest.xml следующий сервис:
accessibility_service_config.xml выглядит следующим образом:
Вот основной код KeyRemapAccessibilityService.kt:
пакет com.example.keyboard_remap_service; импортировать android.accessibilityservice.AccessibilityService импортировать android.view.KeyEvent импортировать android.view.accessibility.AccessibilityEvent импортировать android.util.Log класс KeyRemapAccessibilityService : AccessibilityService() { переопределить удовольствие onServiceConnected() { супер.onServiceConnected() Log.i("AccessibilityService", "Сервис подключен") // При необходимости настройте здесь свой сервис } переопределить fun onAccessibilityEvent(event: AccessibilityEvent?) { // Обработка событий доступности, если необходимо Log.i("AccessibilityService", "Событие доступности") } переопределить удовольствие onInterrupt() { // Обработка прерывания службы Log.i("AccessibilityService", "Прерывание") } переопределить удовольствие onKeyEvent(событие: KeyEvent?): Boolean { Log.i("AccessibilityService", "Получено ключевое событие: ${event?.keyCode}") вернуть super.onKeyEvent(событие) } } Android Studio удается скомпилировать и запустить приложение, и я получаю экран «Приветствие» на своем телефоне и кучу журналов «Событий специальных возможностей», когда я включаю службу и нажимаю что-нибудь. Однако при нажатии на клавиатуру я не вижу журналов «Получено ключевое событие».
Я нашел приложение, которое делает то, что я хочу, его исходный код находится здесь, и мне удалось сделать то, что я хочу, клонировав его и изменив эту функцию, но я хотел бы понять, как я могу изменить свой чтобы код работал так, как я хочу, вместо того, чтобы продолжать работать с очень большой кодовой базой и менять мелкие вещи тут и там.
Я пытаюсь создать специальную службу специальных возможностей Android для имитации касаний экрана при нажатии разных клавиш на клавиатуре Bluetooth.
Я новичок в разработке приложений для Android за пределами Flutter, поэтому подозреваю, что проблема кроется где-то в XML-файле манифеста или конфигурации доступности, а не в коде Kotlin.
Начав с пустого действия в Android Studio, я добавил в AndroidManifest.xml следующий сервис:
accessibility_service_config.xml выглядит следующим образом:
Вот основной код KeyRemapAccessibilityService.kt:
пакет com.example.keyboard_remap_service; импортировать android.accessibilityservice.AccessibilityService импортировать android.view.KeyEvent импортировать android.view.accessibility.AccessibilityEvent импортировать android.util.Log класс KeyRemapAccessibilityService : AccessibilityService() { переопределить удовольствие onServiceConnected() { супер.onServiceConnected() Log.i("AccessibilityService", "Сервис подключен") // При необходимости настройте здесь свой сервис } переопределить fun onAccessibilityEvent(event: AccessibilityEvent?) { // Обработка событий доступности, если необходимо Log.i("AccessibilityService", "Событие доступности") } переопределить удовольствие onInterrupt() { // Обработка прерывания службы Log.i("AccessibilityService", "Прерывание") } переопределить удовольствие onKeyEvent(событие: KeyEvent?): Boolean { Log.i("AccessibilityService", "Получено ключевое событие: ${event?.keyCode}") вернуть super.onKeyEvent(событие) } } Android Studio удается скомпилировать и запустить приложение, и я получаю экран «Приветствие» на своем телефоне и кучу журналов «Событий специальных возможностей», когда я включаю службу и нажимаю что-нибудь. Однако при нажатии на клавиатуру я не вижу журналов «Получено ключевое событие».
Я нашел приложение, которое делает то, что я хочу, его исходный код находится здесь, и мне удалось сделать то, что я хочу, клонировав его и изменив эту функцию, но я хотел бы понять, как я могу изменить свой чтобы код работал так, как я хочу, вместо того, чтобы продолжать работать с очень большой кодовой базой и менять мелкие вещи тут и там.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как использовать службу специальных возможностей с TYPE_WINDOW_STATE_CHANGED
Anonymous » » в форуме Android - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-