如何在Iphone 6上扫描不通告名称的BLE设备

时间:2018-05-30 08:06:30

标签: ios swift bluetooth-lowenergy ios-bluetooth

我们正在使用Swift和IOS CBCentralManager。我们有蓝牙低功耗(双模设备)

由于空间不足,双模设备广告包没有名称或缩写名称。

当我们使用广告框架中包含的服务UUID调用“scanForPeripherals(withServices:options :)”时,如果我们还包含一个简短的设备名称,我们只会收到回复。

因此,通过名称字段,我们可以检测到设备。没有名称字段,我们无法检测到设备。我们期待返回一个CBPeripheral,显然有一个NIL名称。

我们得到早期Iphone的回复,例如Iphone 5,但后来Iphone和Ipads没有得到回复。

Lightblue等第三方软件可以检测到这些设备。此第三方软件每次在我们测试的每台设备上都能正确检测到。

必须有一些我们遗失的东西。

1 个答案:

答案 0 :(得分:0)

我发现Apple的选项记录很差。看来这是覆盖这个用例的选项。

let CBCentralManagerScanOptionAllowDuplicatesKey: String

如果广告中没有名称,Apple必须看到重复的ID(或null)。

这是苹果写的Apple Scan feature AllowDuplicatesKey

由于BLE中广告框架的大小限制,这必须经常出现。

我可以看到为什么当设备不是以消费者为目标时,许多开发人员会选择不在GUI的名称上的32字节广告框架中浪费空间。