我正在学习蓝牙(和LE),我正在为Windows10编写简单的桌面应用程序,以便与不同类型的BLE健身设备进行通信。
我已经启动并运行了蓝牙,我可以发送和接收数据,但我有一个小问题;有时我无法从“制造商名称字符串”中获得正确的制造商名称。我需要知道制造商,这样我才能向设备发送制造商特定的命令。问题似乎与不同的计算机硬件和/或驱动程序有关,因为问题只发生在我的朋友的计算机上,而不是我的计算机上。我使用的设备不支持"PnP ID“和"System ID”,所以我无法使用它们来获取所需的信息。
我还在某处读到,我可以使用MAC地址来了解制造商,但我使用的设备不能以可用于获取公司标识符的格式提供地址。
我还可以使用什么来获取制造商名称和/或代码?
发布于 2018-11-11 19:06:07
如果广告数据包含制造商数据记录,则可以在此处查找16位制造商id:
https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
发布于 2018-11-09 21:12:03
查看MAC地址可能非常不可靠,因为许多BTLE设备出于隐私原因使用随机MAC地址。
但是,还有各个BTLE特征的UUID,其中包含制造商代码。请看这里的列表:https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members (注意,这适用于缩短的16位UUID,而不是完整的128位UUID)。
发布于 2019-10-30 19:25:43
考虑到大多数健身设备都遵循关贸总协定规范,0x2A29uuid对应于org.bluetooth.characteristic.manufacturer_name_string.
https://www.bluetooth.com/specifications/gatt/characteristics/
https://stackoverflow.com/questions/53225274
复制相似问题