如何读取串口连接的蓝牙耳机的数据?

如何读取串口连接的蓝牙耳机的数据?

我的蓝牙耳机(使用 USB 加密狗连接)的播放/暂停按钮无法在 Windows 10 上使用(音量转换器工作正常),因此我尝试将该键重新映射到媒体播放/暂停按钮。

首先,我尝试使用 AHKHID,并使用示例来找出连接的 HID 设备。这只显示了键盘和鼠标。因此,我进一步研究了蓝牙设备,并编写了一个程序来让可用的蓝牙服务在耳机上运行。它可以找到的 3 个服务是 SPP、HSP 和 HFP。从这些来看,SPP 看起来最有希望,正如维基百科所述

它模拟串行电缆,为现有的 RS-232 提供简单的替代,包括熟悉的控制信号。它是 DUN、FAX、HSP 和 AVRCP 的基础。

我知道 AVRCP 应该是发送控件的那个,所以这肯定是播放/暂停信号的来源。我查看了计算机上可用的串行 COM 端口,发现它使用 COM3 进行耳机的传入通信,使用 COM4 进行耳机的传出通信。

现在我陷入了困境。我尝试以编程方式连接到耳机上运行的 SPP 服务,该服务成功了(没有抛出任何错误),但输入数据事件没有触发,并且流读取超时。

我还尝试使用以下方法检查串行数据串行端口监视器(试用版),但它没有显示任何内容,除了当我单击打开或关闭时,它会显示一堆设置消息。

问题可能出在哪里?Windows 是否正在使用它,因此阻止其他程序访问它(或在其他人看到它之前清空该流)?还是我做错了什么?

有任何想法吗?

编辑:

同时,我安装了适用于 Windows 的原生 Spotify 应用程序,它可以很好地检测到按钮按下。由于这是我进行这项研究的主要目标,因此我不会对此进行深入研究,但了解它从哪里获取按钮按下以及为什么它不适用于其他应用程序会很有趣。

相关内容