【问题标题】:Bluetooth device is detected as a Low Energy and an ordinary Bluetooth device with the same MAC address and name蓝牙设备被检测为低功耗且具有相同 MAC 地址和名称的普通蓝牙设备
【发布时间】:2020-12-08 08:01:24
【问题描述】:
我正在创建一个 Windows 实用程序来连接蓝牙设备。我正在使用Windows.Devices.Enumeration API。我注意到一些蓝牙设备(特别是三星智能电视)被 Windows 检测为 2 个设备:LE 蓝牙设备和普通蓝牙设备。但是这两个设备的MAC和名称是一样的。
在这种情况下,用户应该连接到哪个设备(LE 或非 LE)?
【问题讨论】:
标签:
c#
bluetooth
bluetooth-lowenergy
【解决方案1】:
蓝牙 LE 设备(v4 及更高版本)通常向后兼容。话虽如此,经典( v4)这两种蓝牙是完全不同的。
Bluetooth Classic 使用经典的主从连接,其中一台设备向另一台设备发送指令,另一台则服从。
Bluetooth Low Energy 彻底改变了这一点,并用以客户端-服务器为中心的架构取代了该架构。设备遵循 GATT 连接的概念,它们具有由服务和特性决定的特定规则和功能。您获得设备的服务通道,连接到特定的特性并读取/写入/订阅来自它的通知。这种新的连接类型允许外围设备仅在被调用时才起作用,从而减少了在服务器端进行持续连接轮询的需要并节省了能源。它还允许您一次连接到多个 BLE 设备。
我建议您使用低功耗蓝牙来推进所有连接。它更节能,连接一般更稳定,BLE的范围也更大。低功耗蓝牙旨在向后兼容,因此您的应用还应兼容最新版本的 BLE (v5+)