OS X的虚拟HID键盘

eya*_*alw 7 macos bluetooth hid l2cap

我正在尝试为Mac OS 创建一个虚拟蓝牙键盘客户端.这意味着我的Mac将作为BT KB.我在OS X中看到了蓝牙API(在ObjC中),我还发现了一个用于Mac的HID API(在C中)

为了完成这项工作,我理解我需要声明一个应该在SDP查询上广播的hid-keyboard-service.

  1. 如果我使用HID API声明HID服务,我的服务是否也在蓝牙上可见/广播?(这些文件似乎仅涉及关于USB的HID). - 在蓝牙和USB接口上都可以看到HID服务,而且底层连接对我来说是透明的吗?
  2. 是否有任何代码可以帮助我解决这个问题?我更喜欢ObjC,但似乎HID API只是C ...... :(

谢谢...!

Iva*_*ica 1

据我了解,HID 设备驱动程序代表操作系统本地的设备,也代表操作系统本地的各种其他组件的设备。它不用于在 USB 或蓝牙上“广播”。据我所知,OS X 不包含蓝牙 HID 服务,OS X 和 Mac 中的 USB 芯片组都不支持 USB 设备模式——或者至少不公开它。

您将需要编写一个蓝牙服务。我还没有这样做,但文档似乎很广泛。据我了解,您必须以某种方式基于底层蓝牙 L2CAP 传输协议来实现 HID 服务。

由于我既没有研究过蓝牙,也没有研究过Mac下的蓝牙支持,所以我无法提供更多帮助。我确实查看了 HID 协议规范,甚至还使用了它们。HID 的实现相对简单,但首先要实现蓝牙服务需要做相当多的工作。