可以将计算机变成蓝牙HID设备吗?

40

有没有可能让计算机成为蓝牙HID设备?也就是说,给定一个插有标准USB键盘的本地计算机,其他设备可以发现此计算机并将其用作蓝牙键盘。

我想创建一个Linux或OS X应用程序(或使用现有应用程序,尽管我没有找到任何应用程序),它可以像上述方式一样运行,但我不确定从哪里开始,或者是否可能。

所以:

  • 我描述的是否可能?
  • 是否有任何现有的应用程序可以执行我所描述的操作?
  • 如果不存在任何应用程序(我假设没有),是否有蓝牙库或绑定可以帮助?(我很乐意使用大多数当今流行的语言,因此我更喜欢最直接适用于任务的库,只要它在Linux或OS X中可用。)
  • 如果上述都失败了,蓝牙规范看起来非常深奥。是否有特定指南或其他起点适用于手头的问题?

我意识到这样的应用程序很可能需要窃取正常的键盘输入,可能会提供一些类似KVM的热键,用于在向主机操作系统提供输入和将输入发送到连接的设备之间切换,但我认为这个问题超出了本问题的范围。


1
我知道Bluez支持广告任意服务,但我不知道它们如何实现。我建议你尝试联系Bluez开发人员。http://www.bluez.org/contact/ - Ignacio Vazquez-Abrams
补充一下这个老问题,这里有一个开源的HID客户端,可以让Linux机器像蓝牙键盘一样工作:http://anselm.hoffmeister.be/computer/hidclient/index.html.en 如果需要更多关于它如何工作的信息,您可以阅读源代码。 - rdrey
5个回答

6
在Linux上完全可以实现。前段时间我发现了这个项目:http://nohands.sourceforge.net/index.html。他们在Linux蓝牙栈上模拟了一个带有音频和键盘控制的耳机。如果他们能够模拟这样的东西,那么你可能也能够模拟一些更简单的东西,比如一个键盘。

4
可以实现,但我觉得我可能无法很好地解释,而且我也不知道完整的答案。BT HID设备作为服务器工作,等待连接。在Linux中,使用bluez堆栈,首先您必须向其他设备广告HID服务。我认为您可以使用sdp.h和sdp-lib.h头文件来执行此操作(第二个头文件可能叫做其他名称,我正在Windows计算机上并且无法检查)。因此,您必须将HID服务记录添加到计算机以供其他设备查看。您需要创建一个程序,首先将此服务添加到记录中,然后等待其他设备连接,然后处理配对过程,Bluez可能会为您处理此过程,或者您可能需要对其进行一些操作,我不太确定。您还应阅读在http://www.bluetooth.com/English/Technology/Building/Pages/Specification.aspx网站上找到的蓝牙HID规范。此文档包含与HID相关的SDP记录的详细信息。此外,书籍Bluetooth essentials for programmers非常适合介绍您进入蓝牙编程。

我希望能给出更简洁、更详细的答案,但这是我现在所知道的全部。我也正在尝试做类似的事情,但很难找到空闲时间;)我也不在我的Linux桌面上,无法检查所有细节。如果您仍然感兴趣,请告诉我,我会尽力扩展我的回答。


3
我不知道这是否有帮助,也不知道它是否仍然有效,但也许你可以尝试这个链接
另一个可能有所帮助的是remuco,但我不知道他们是否使用蓝牙HID配置文件。

2

1

尝试使用Across,不幸的是我的手机缺乏支持。

across-pc-as-bluetooth-mouse.png


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接