最近研究了下怎么在windows上连接蓝牙设备,并获取蓝牙设备的消息以及如何向蓝牙设备写入消息。该方法同样适用于Unity引擎。
本质上还是获取windows的底层API接口进行调用,连接蓝牙设备的流程大概是:
- 搜索蓝牙设备列表,并获取蓝牙设备的属性,其中有属性值有isConnectable、name等等
- 选择蓝牙地址进行连接,等待连接成功
- 搜索蓝牙设备的Services列表
- 搜索某个Service的Characteristics
- 订阅Characteristics
- 接收消息/写入消息
至于如何接入,微软官方有个示例工程,可以下载查看,在那基础上改即可,里面有C#,C++两种语言的。C#编译后是个uwp应用,可以编译后测试下流程。
该方法适用于接入小米手环、华为手环、其他蓝牙设备等等,然后根据协议格式解析即可。
微软官方示例工程:Bluetooth Low Energy sample - Code Samples | Microsoft Docs
GitHub封装好的Unity工程:https://github/adabru/BleWinrtDll
希望对大家有帮助。