我正在开发iOS应用程序(Objective-C)。
我正在寻找一种连接BLE设备的方法,以便您可以指定此设备的MAC或UUID。
目前我有两个名称相同的BLE设备,因此应用程序无法区分两者,这会产生很多问题(这些设备没有相同的功能)。
连接到BLE设备时有没有办法指定MAC或UUID?
答案 0 :(得分:1)
RSSI信号强度发现区分两个或更多设备。 如果UUID从外设获得一次,那么也可以区分外围设备。
注意:iOS不允许读取外设的MAC地址。
答案 1 :(得分:0)
该设备的MAC不可用,任何其他特别有用的标识符也不可用。但是,由于“这些设备不具有相同的功能”,因此它们应具有其宣传的不同服务。调用scanForPeripherals(withServices:options :)时,您应该传递您感兴趣的特定服务。这对于性能而言要好得多,并且还将自动过滤出您不感兴趣的设备。为serviceUUID传递nil仅应通用BLE扫描器即可完成。
如果控制设备固件,则可以添加服务以标识设备的类型,或者在制造商的广告数据中添加信息以在扫描期间区分设备。
如果这些设备宣传相同的服务,但在其他方面相同,那么您将需要同时连接这两者并查询它们以确定所需的设备。但是,除非设备通过某种特性提供它,否则您仍然不会收到MAC。
通常,给定设备将继续具有相同的CBP外围设备UUID,并且可用于重新连接到先前已知的设备。但是,如果设备从不安全配对,则该UUID也不总是稳定的。