![在 Windows 上处理不同蓝牙堆栈的最佳实践?](https://linux22.com/image/1415485/%E5%9C%A8%20Windows%20%E4%B8%8A%E5%A4%84%E7%90%86%E4%B8%8D%E5%90%8C%E8%93%9D%E7%89%99%E5%A0%86%E6%A0%88%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%EF%BC%9F.png)
我发现,Windows 上存在几个非常常见的蓝牙堆栈。
- 微软
- 蓝色太阳
- 东芝
- WIDCOMM/博通
显然——如果我错了,请纠正我——没有标准化的方式来搜索、配对和连接设备:对于当前处于活动状态的每个蓝牙堆栈,该过程都是不同的。例如,如果事先安装了 BlueSoleil,用户将无法通过标准控件(控制面板 => 设备和打印机 => 添加设备)添加蓝牙设备。用户必须使用 BlueSoleil 界面。同样,如果 BlueSoleil 处于活动状态,我将无法通过 Microsoft 的蓝牙 API 连接到设备。
这个事实让我很惊讶,因为这意味着连接蓝牙设备的步骤会随着实际的蓝牙堆栈而改变。(如何编写简单的用户手册?)
背景:我的目标是向用户隐藏与蓝牙设备的完整连接(通过 SPP):搜索设备、配对、串行连接。但是,我想避免被现有的不同堆栈所困扰。在 Win 上处理不同蓝牙堆栈的最佳实践是什么?
我找到了旨在简化此过程的外部项目,但我不知道它们在兼容性方面是否强大。还有其他吗?
- 32feet.NET(免费,重点关注 PAN)
- 无线通信库(所有权)
非常感谢您的帮助!
答案1
蓝牙设备搜索、配对和连接其他设备的方式绝对是标准化的——它被称为“蓝牙”。
您所看到的是具有不同用户界面的不同蓝牙实现/驱动程序。
UI 永远不会完全标准化,因为逐个图标、逐个点击地复制竞争对手的 UI 很容易被起诉侵权。Windows 中使用的蓝牙堆栈由用户选择(当他们购买硬件时),因此用户也需要弄清楚如何使用他们选择的设备。
Windows 在较新版本的 Windows 中提供了蓝牙 API,以帮助标准化您所遇到的问题。
但它仍然很新,现有的蓝牙制造商已经编写了软件,因此他们可能并不急于将其全部重写为微软新的“标准”蓝牙 API。此外,微软的蓝牙 API 可能(尚未)提供蓝牙制造商认为他们需要/想要的选项,因此他们尚未准备好切换。