【发布时间】:2018-07-10 22:32:07
【问题描述】:
我可以成功扫描所有可连接的蓝牙设备:
_manager?.scanForPeripherals(withServices: nil, options: [CBCentralManagerScanOptionAllowDuplicatesKey:true])
但是当我尝试从特定 CBUUID 进行扫描时,我的应用没有发现蓝牙设备。
_manager?.scanForPeripherals(withServices: [CBUUID(string: "FFF1")], options: [CBCentralManagerScanOptionAllowDuplicatesKey:true])
我使用具有相同 FFF1 服务 UUID 的 LightBlue ios 应用程序创建了一个虚拟设备,并且 2. 代码按预期工作。但它没有发现具有相同服务 UUID FFF1 的真正蓝牙设备。
注意:除了搜索特定 CBUUID 之外,所有功能、连接、发现服务、发现特征、读写工作正常。
【问题讨论】:
-
设备是否真的在宣传该服务?提供的服务集可以大于广告的服务集
-
@Paulw11 上的 +1 这不是因为设备有服务,它才会宣传它。当你做
...(withServices: nil...时,检查didDiscoverPeripheral是什么广告(打印),如果没有出现“FFF1”,那就是它失败的原因。 -
你是对的,设备没有宣传该服务。
标签: swift core-bluetooth