Как я могу использовать профиль устройства Bluetooth HID в Android Pie? - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь написать приложение для Android P, используя службу профиля устройства Bluetooth HID для использования в качестве клавиатуры Bluetooth.В соответствии с документацией я должен использовать метод BluetoothAdapter.getProfileProxy(Context, BluetoothProfile.ServiceListener, int) для получения прокси-объекта BluetoothHidDevice.

Во время отладки на моем устройстве Android Pie (Nokia 7+) слушатель службы никогда не получаетзвонил (onServiceConnected), и я получаю следующую ошибку в Logcat:

Could not bind to Bluetooth HID Device Service with Intent { act=android.bluetooth.IBluetoothHidDevice }

Если я изменю последний параметр в вызове выше с HID_DEVICE на другой профиль Bluetooth, например A2DP , прослушиватель службы получает обратный вызов onServiceConnected, и ошибка не отображается.

  1. Кто-нибудь создал работающий HID_DEVICE на Android Pie?
  2. Может BluetoothHidDevice использовать для создания устройства на Android-пироге?
  3. Есть ли какой-нибудь рабочий код, на который я могу посмотреть?
  4. Есть ли какая-то функция (getPackageManager().hasSystemFeature), отсутствующая в моемтелефон?
  5. В чем может быть причина вышеуказанной ошибки?

Будем благодарны за любые подсказки:)

Похоже, это проблема стороннего производителя.,Nokia не включила hid-профиль в Android Pie.Я также попробовал с игрой Mototorola G7, она также была отключена, я думаю, пришло время для пикселя ...

Ответы [ 3 ]

0 голосов
/ 06 июля 2019

В настоящее время на пикселе включен профиль устройства HID.Nokia, moto (как упомянуто выше) и One Plus 5T и 6, насколько я знаю, не поддерживают этот профиль.

Мы создали приложение, которое позволяет использовать телефон в качестве Bluetooth-мыши и клавиатуры с этим профилем устройства HID.https://play.google.com/store/apps/details?id=com.github.roarappstudio.btkontroller

Код с открытым исходным кодом на https://github.com/raghavk92/Kontroller. Если кто-то хочет помочь в улучшении или внести свой вклад в код, он приветствуется.

Вы также можете проверить, если вашТелефон поддерживает профиль устройства Bluetooth HID с приложением - https://play.google.com/store/apps/details?id=com.rkaneapplabs.bluetooth_hid.bluetoothproxy и сообщите производителю вашего устройства, если оно не поддерживает ваше устройство, потому что оно является частью android pie и должно поддерживаться.

0 голосов
/ 22 июля 2019

Здесь есть полуофициальный пример кода: https://github.com/ginkage/wearmouse - фактически, от самого Google (см. https://opensource.google.com/projects/wearmouse).

. Он предназначен для использования на часах Wear OS, но содержит все, что вам нужно.нужно также использовать его на телефоне: прокси-класс для профиля, класс обратного вызова, пример дескриптора HID, QoS, обратные вызовы для таких случаев, как запрос уровня заряда батареи от хоста и т. д.

Само приложение доступнов Google Play здесь: https://play.google.com/store/apps/details?id=com.ginkage.wearmouse (кстати, приложение также поддерживает Android 8, но работает только на часах, а не на телефонах).

0 голосов
/ 20 апреля 2019

Вы можете взглянуть на это https://github.com/kshoji/BLE-HID-Peripheral-for-Android.Я смог построить из этого bluetooth-клавиатуру.

...