【问题标题】:How can i use the Bluetooth HID Device profile in Android Pie?如何在 Android Pie 中使用蓝牙 HID 设备配置文件?
【发布时间】:2018-11-30 09:54:22
【问题描述】:

我正在尝试使用蓝牙 HID 设备配置文件服务为 Android P 编写一个应用程序,以用作蓝牙键盘。根据documentation我应该使用方法BluetoothAdapter.getProfileProxy(Context, BluetoothProfile.ServiceListener, int)来获取BluetoothHidDevice代理对象。

在我的 Android Pie 设备(诺基亚 7 plus)上调试期间,服务监听器永远不会被调用 (onServiceConnected),我在 Logcat 中收到以下错误:

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

如果我将上述调用中的最后一个参数从 HID_DEVICE 更改为其他蓝牙配置文件,例如A2DP,服务监听得到回调onServiceConnected,没有报错。

  1. 有没有人在 Android Pie 上创建了一个可以工作的 HID_DEVICE?
  2. BluetoothHidDevice 可以用于在 Android 上创建隐藏设备 派手机?
  3. 有没有我可以查看的工作代码?
  4. 有什么功能吗(getPackageManager().hasSystemFeature) 我的手机里不见了?
  5. 上述错误的原因可能是什么?

任何提示将不胜感激:)

这似乎是第三方问题。诺基亚没有在 Android Pie 中启用隐藏配置文件。我也试过摩托罗拉G7玩,它也被禁用了,我想是时候换一个像素了……

【问题讨论】:

  • 我尝试在 Oreo 8.1 上使用 Xposed 解决这个问题(因为它已实现但被禁用和隐藏),我也遇到了这个问题。对我来说,这是因为该服务在清单中被禁用(android:enabled="@bool/profile_supported_hidd" 并且 bool 设置为 false)。我用setComponentEnabledSetting修复了它
  • 我真的很想知道使用 Android 作为 HID 设备是否适用于 Android Pie。我想以编程方式使用我的 Pixel 2XL 作为游戏控制器
  • 我也会把这个放在这里..也许有人可以直接联系作者,看看他是否可以帮助提供答案xda-developers.com/android-p-bluetooth-keyboard-mouse
  • @Kim 我也在制作一个应用程序,用于在 android pie 上使用 android 作为蓝牙键盘。如果您愿意,我们可以一起解决这个问题。如果我在这个问题上取得任何进展,我会通知您。
  • 根据 google 问题跟踪器,这可能是第三方问题。我可以确认在 OnePlus 6 / OxygenOS 9.0.4 上,HID 设备服务仍然被禁用,就像 @ralismark 对 Oreo 的描述一样。 :(

标签: android android-bluetooth hid


【解决方案1】:

目前在像素上启用了 HID 设备配置文件。据我所知,诺基亚、moto(如上所述)和一加 5T 和 6 不支持此配置文件。

我们创建了一个应用程序,可让您通过此 HID 设备配置文件将手机用作蓝牙鼠标和键盘。 https://play.google.com/store/apps/details?id=com.github.roarappstudio.btkontroller

代码在https://github.com/raghavk92/Kontroller 开源。如果有人想帮助改进或贡献代码,欢迎他们。

您还可以使用应用程序检查您的手机是否支持蓝牙 HID 设备配置文件 - https://play.google.com/store/apps/details?id=com.rkaneapplabs.bluetooth_hid.bluetoothproxy,并让您的设备制造商知道他们是否不支持您的设备,因为它是 android 派的一部分,应该支持。

已激活/不工作的蓝牙 HID 设备配置文件的设备列表(由于制造商实施错误)在这里 - https://github.com/raghavk92/Android_Bluetooth_HID_Device_Profile_CompatibilityList

这些错误是由于制造商方面的实施而不是谷歌,因为像素设备支持这个蓝牙 HID 设备配置文件,因为 android pie

【讨论】:

    【解决方案2】:

    这里有一个半官方的示例代码: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,但仅适用于手表,不适用于手机)。

    【讨论】:

      【解决方案3】:

      你可以看看这个 https://github.com/kshoji/BLE-HID-Peripheral-for-Android 。 我能够用它构建一个蓝牙键盘。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-07
        • 2014-12-08
        • 2010-09-21
        • 2011-11-16
        • 2015-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多