Intereting Posts
Различные размеры шрифта для разных размеров экрана Доступ к локальному ПК ПК с подключенного к USB-мобильному устройству Android Есть ли способ установить только ADB без всего SDK? Google Maps CameraUpdateFactory не инициализирован Ограничения внешнего ключа в Android с помощью SQLite? On Удалить каскад Исходный код для Android-приложений? Что в TtsService могло объяснить отсутствие onUtteranceCompleted () для playEarcon ()? Отображение активности с пользовательской анимацией Как я могу получать уведомления о том, что Snackbar уволился? Библиотека Пикассо – вне памяти TextToSpeech с API 21 Как мы можем получить arraylist (как строку, так и целое число) из ресурсов xml Что нужно использовать в качестве полезной нагрузки разработчика в API-интерфейсах Google In-App Billing? Установите режим наложения Actionbar во время выполнения на Android Не удается создать и запустить проект тестирования Android, созданный с помощью «ant create test-project», когда тестируемый проект имеет банки в каталоге libs

Имитировать USB / Bluetooth HID-устройство локально для ввода событий?

Возможно ли смоделировать устройство USB или Bluetooth, подключенное к Android?

Я хотел бы сделать приложение, которое может имитировать HID-устройство локально . Я имею в виду: приложение должно заставить Android полагать, что подключено устройство USB / Bluetooth HID. Надеюсь, это позволит моему приложению вводить события касания во всем мире. Нужно ли вообще имитировать (виртуальное) устройство? Обратите внимание, что я действительно не забочусь об устройстве, я просто хочу использовать встроенную поддержку ввода HID.

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

Корректировка устройства может быть вариантом, хотя я также могу предположить, что мои конечные пользователи могут установить специально подписанное приложение вручную (согласно https://stackoverflow.com/a/16737083/2923406 и https://stackoverflow.com/a / 22902808/2923406 это работает, но это будет специфично для устройства).

Я знаю:

  1. Имитация ввода мыши на андроиде – этот парень, похоже, делает это в своем приложении, хотя на его вопросы не ответил;)

  2. Http://www.pocketmagic.net/2013/01/programmatically-injecting-events-on-android-part-2/#.U58SqfldVHV – Нуждается в корне. Кто-нибудь преуспел в использовании этого? Кроме того, решение кажется очень специфичным для устройства.

  3. Bluetooth + имитирующая мышь – это не то, что я хочу. Сам телефон не должен быть HID-устройством, но использовать сам (фактически созданный). То же самое для этого: https://stackoverflow.com/a/8174973/2923406

Обратите внимание: я не хочу превращать свой телефон в HID-устройство любого типа.

Solutions Collecting From Web of "Имитировать USB / Bluetooth HID-устройство локально для ввода событий?"

Имитация – это широкий термин. Когда я создал свое приложение Bluetooth, я «смоделировал» Bluetooth-соединение двумя способами.

Способ 1: Используйте последовательный порт UART convertte r и подключите его к передатчику модуля Bluetooth .

Затем вы можете использовать терминальную программу, например CoolTerm , для отправки ваших данных.

Вот так . В этом случае я закодирован в строке для отправки по успешному соединению с устройством, однако вы можете сделать бесконечный цикл для целей тестирования, не требуя, чтобы ваш телефон был превращен в устройство HID.

Путь 2 (не просто): используйте Bluetooth-устройства своих компьютеров в модели relashionship сервера / клиента.

Это сложнее сделать. Что вы можете сделать, это преобразовать ваш ПК / Mac в сервер и телефон Android в клиент или наоборот. Для этого вам нужно будет написать внешний код, который нужно будет компилировать отдельно на jvm (виртуальная машина Java). Процедуру этого можно найти здесь . Если вы используете Linux-машину, вам необходимо отдельно загрузить модуль Bluez. Я не пробовал это в любой другой операционной системе, кроме Ubuntu, и было больно получить функциональность.

Надеюсь, это помогло.

Да, довольно просто использовать протокол AOA2 для проверки этого и этих ссылок для получения подробной информации (вам нужно переключить устройство в режим Accessory)

Это может быть возможно (или, по крайней мере, проще) с использованием библиотеки Robolectric , которая имитирует полное Android-устройство локально. Хотя он предназначен в первую очередь для тестирования, тот факт, что он имитирует целое устройство локально, включая Bluetooth и USB, означает, что добавление к нему может быть более легким.

Другими словами, вы можете модифицировать классы, которые он использует, чтобы имитировать эти способности локально (например, в самой IDE без эмулятора или устройства), чтобы имитировать их на самом устройстве. В конце концов, он обеспечивает полное моделирование этих функций. Вы могли бы просто изменить эти классы Bluetooth и USB-имитации для загрузки на самом устройстве, а не на локальное тестовое «устройство» Robolectric.

Это всего лишь идея, но я не могу подтвердить, что это сработает – это может быть хорошим местом для вас.