对于BLE 4.0,它提供API来发现具有服务UUID阵列的外围设备。
我只想找到具体的一个。怎么做到这一点?
如果需要将标识符分配给特定设备,该怎么做?
(我认为我的问题需要一些iOS核心蓝牙的背景。)
答案 0 :(得分:5)
Core Bluetooth Programming Guide中描述了重新连接到已知外围设备的过程。
基本上,如果您知道要重新连接的设备的UUID(identifier
对象的CBPeripheral
属性),那么您可以使用retrievePeripheralsWithIdentifiers:
方法{ {1}}获取CBCentralManager
对象,然后尝试连接 -
CBPeripheral
这可能不起作用,您可能必须扫描外围设备,因为某些外围设备的标识符(特别是iOS设备)会定期更改其UUID。
编程指南说明 -
注意:可能无法连接外围设备 有几个原因。例如,设备可能不在附近 中央。此外,一些蓝牙低功耗设备使用了 随机设备地址定期更改。因此,即使 设备在附近,设备的地址可能已经改变 它最后一次被系统发现,在这种情况下 您尝试连接的CBPeripheral对象不对应 实际的外围设备。如果你不能重新连接到 外围设备,因为它的地址已经改变,你必须重新发现它 使用scanForPeripheralsWithServices:options:方法。
第一次遇到外围设备时,您还必须进行扫描。
答案 1 :(得分:0)
告诉我,如果我错了。您有两个设备作为核心角色,希望连接到一个BLE外围设备。
重要的是BLE外围设备中的服务的UUID。从中心角色的设备中,您应该使用所需的UUID服务搜索外围设备。多数民众赞成。
要使用iOS开发,请关注Core Bluetooth Programming Guide。你有一个很好的教程。
作为Apple文档的一个示例:
[myCentralManager scanForPeripheralsWithServices:nil options:nil];
在这行代码中,您可以为CBUUID
scanForPeripheralsWithServices:
)而不是nil