从蓝牙设备获取有效的CBUUID以进行扫描

时间:2017-11-13 00:25:17

标签: ios swift core-bluetooth

我正在为特定类型的蓝牙设备(读卡器)编写一个简单的设备浏览器。我知道您应该将CBUUID指定的服务数组传递给scanForPeripherals(withServices:options:)方法。

要查找这些ID,我已经在没有服务过滤器的情况下进行扫描,找到了我的设备,并查看了advertisementData["kCBAdvDataServiceUUIDs"]我发现单个64位CBUUID的地方,如下所示:0x00000001c413e940

如何将此字符串转换为可以作为服务过滤器传入的有效CBUUID?我已经尝试了CBUUID(string:)初始化程序,但它只是抛出一个运行时异常,说它不是有效的UUID。

我也查看了该设备的参考手册,并找到了下表:

enter image description here

但是,这些似乎都不起作用 - 在通过这些服务UUID进行过滤时,扫描中不会显示任何设备。

最后,当我在LightBlue中检查设备时,它报告1个服务广播(FFF0),但是当我尝试按此服务进行过滤时,没有设备显示。

我开始认为服务过滤器很简单。有没有人真正使用它?

更新:有效!我重建并重新安装了该应用,并且在使用FFF0的服务过滤器扫描时出现了该设备。感谢Paulw11的帮助。

0 个答案:

没有答案