c# - 蓝牙设备被检测为低功耗且具有相同 MAC 地址和名称的普通蓝牙设备
问题描述
我正在创建一个 Windows 实用程序来连接蓝牙设备。我正在使用Windows.Devices.Enumeration API。我注意到一些蓝牙设备(特别是三星智能电视)被 Windows 检测为 2 个设备:LE 蓝牙设备和普通蓝牙设备。但这两个设备的 MAC 和名称是相同的。
在这种情况下,用户应该连接到哪个设备(LE 或非 LE)?
解决方案
蓝牙 LE 设备(v4 及更高版本)通常向后兼容。话虽如此,经典(< v4)和LE(> v4)这两种蓝牙完全不同。
经典蓝牙适用于经典的主从连接,其中一台设备向另一台设备发送指令,而另一台设备则服从。
低功耗蓝牙完全改变了这一点,并用以客户端-服务器为中心的架构取代了该架构。设备遵循 GATT 连接的概念,它们具有由服务和特性决定的特定规则和功能。您获得设备的服务通道,连接到特定的特性并读取/写入/订阅来自它的通知。这种新的连接类型允许外围设备仅在被调用时才起作用,从而减少了在服务器端进行持续连接轮询的需要并节省了能源。它还允许您一次连接到多个 BLE 设备。
我建议您使用低功耗蓝牙来推进所有连接。它更节能,连接一般更稳定,BLE的范围也更大。低功耗蓝牙旨在向后兼容,因此您的应用还应与最新版本的 BLE (v5+) 兼容
推荐阅读
- python-3.x - Error when trying to collect results from concurrent AWS Lambda functions
- python - Flattening python object and list of child objects to a single dict
- python - How to return a dataframe with the last non-NaN values in each column for each month?
- node.js - How can I report performance counters for monitoring?
- bash - Store output of lsblk command key=value into associative array in bash
- jenkins - Jenkins - No valid crumb was included in request
- svn - 释放锁和清理的区别
- javascript - 通过 Excel 插件将自定义文件导出到磁盘?
- php - PHP 7 cURL 请求给出响应代码 302 nginx
- javascript - 如何使用 Vanilla Js 循环轮播项目