Слияние кода завершено, страница обновится автоматически
Android Studio разработанный эмулятор Bluetooth клавиатуры
java version "1.8.0_371" Java(TM) SE Runtime Environment (build 1.8.0_371-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)
Android Studio Iguana | 2023.2.1 Patch 2 Build #AI-232.10300.40.2321.11668458, built on April 4, 2024 Runtime version: 17.0.9+0--11185874 amd64
Android Debug Bridge version 1.0.41 Version 34.0.4-10411341
build apk
для создания APK установочного пакета. При импорте проекта должны автоматически синхронизироваться зависимости.MyApplication\app\src\main\java\com\example\myapplication
Webview
Android для создания фронтенда, взаимодействия с бэкендом, язык - java
;BluetoothHidDevice
Android, доступная с API28. Подробные вопросы можно найти в блоге CSDN Эмуляция Bluetooth клавиатуры на Android и Windows; - Описание файлов (в некоторых файлах есть объявленные, но неиспользуемые методы):
MainActivity.java
основной файл. Включает инициализацию webview страницы и методы жизненного цикла onCreate()
;callBluetooth.java
файл для работы с Bluetooth. Реализует инициализацию и регистрацию Bluetooth HID сервиса, инициирование Bluetooth соединения, отправку информации о клавиатуре, а также ряд обратных вызовов. Ожидается реализация активного сканирования Bluetooth и отображения списка устройств, но пока не реализовано. Также поддерживается подключение по MAC адресу, в будущем планируется упрощение ввода MAC адреса. В настоящее время реализовано распознавание и подключение к уже сопряжённым устройствам, поддерживается ввод по клику. Код для сканирования Bluetooth завершён, но содержит ошибку, то есть состояние уже сопряжённых устройств не обновляется. Улучшена пользовательская интерфейсная оболочка; улучшена логика отправки отчётов, добавлена поддержка комбинаций клавиш;HidConfig.java
файл конфигурации HID. С помощью правильных дескрипторов можно успешно зарегистрироваться как устройство HID-клавиатуры и быть распознанным подключенным устройством. Это включает в себя имя устройства, поставщика, ID и т. д. Текущие дескрипторы имеют проблемы совместимости; дескрипторы, которые работают правильно на Android и Windows, отличаются, и оптимизация продолжается.Можно использовать разные дескрипторы для разных платформ, возможно, в будущем будет реализована функция смены дескрипторов. В файле определены многие дескрипторы, функция смены дескрипторов добавлена, после замены дескрипторов необходимо повторно инициализировать устройство;JavaScriptInterfaces. java
набор JavaScript-интерфейсов для фронтенда. Основная функция — изменение изображения клавиатуры и информации о клавишах. Идея автоматического распознавания клавиш отменена, добавлена функция установки фона, можно задать фон клавиатуры; добавлена функция режима обрезки изображений, поддерживающая выбор изображений из галереи для установки; поддерживается регулировка прозрачности;KeyMap. java
определение байтов, соответствующих каждому клавишу при передаче через HID. Существуют проблемы, некоторые клавиатуры не передают данные правильно. Оптимизированы настройки байтов, убраны ненужные множества сдвигов, теперь можно передавать комбинации клавиш напрямую;Vibrators. java
реализация вибрации устройства. Вибрация при нажатии клавиш улучшает ощущения, однако некоторые устройства не поддерживают линейную вибрацию.MyApplication/app/src/main/AndroidManifest. xml
файл с объявлениями прав
MyApplication/app/src/main/res/layout/activity_main. xml
файл с описанием UI - E:\MyApplication\app\src\main\res\drawable
некоторые файлы с цветовыми схемами
E:\MyApplication\app\src\main\res\layout
некоторые файлы с описанием разметки, в основном для UI подключения Mac и нижнего уведомления о сканировании устройств
MyApplication/app/src/main/assets
;
- index.html
— основная страница, папки css, js, img, data, html
содержат стили, JavaScript-скрипты, изображения, данные инициализации клавиш, а также подстраницы;
- bluetooth.js, temp.js, test_touch.js
— не используются;
- В настоящее время достигнута начальная оптимизация фронтенда. Используются события touchstart
и touchend
для реализации многоточечного касания, а также добавлена функциональность долгого нажатия и комбинации клавиш; поддержка комбинации клавиш реализована.Внешний вид интерфейса был улучшен, включая цвета и размеры, а также оптимизированы анимации;
- Нажатие на настройки в верхнем левом углу разворачивает меню, Readme_XXX.md
для поддержки различных языков, например Readme_en.md // еще не добавлено
, Readme_zh.md
;.png, .jpeg, .bmp
;
- векторные форматы (рекомендуется): .svg(.xml)
;
- другие форматы изображений: .gif, .webp, .heif
;svg
.svg`. Клавиши имеют квадратную форму для удобства управления и оптимизации нажатий.2024/2/24:
Программа выдала ошибку на Android
;2024/2/28:
В коде содержится множество Log.d(TAG, "String")
для вывода информации о логах для устранения ошибок;Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )