我有一个带有服务广告的iBeacon设备。我需要知道如何在后台模式下从iOS应用程序连接到iBeacon。
请帮帮我,我是iOS编程新手。有什么想法吗?
答案 0 :(得分:2)
不要将iBeacon传输的ProximityUUID与GATT服务UUID混淆。虽然两者都是16字节标识符,通常以相同的十六进制格式表示,但两者具有完全不同的含义。 iBeacon ProximityUUID不能用作GATT服务UUID。
完全没有要求发送iBeacon帧的蓝牙信标承载任何可连接的GATT服务。虽然一些制造商确实在其硬件信标中提供GATT服务以配置其标识符以及其他用途,但GATT服务UUID通常与ProximityUUID不同。
如果你想做你所描述的,你需要:
如果您无法从制造商处获取信息,您可以通过在前台扫描(未指定GATT服务UUID)找到它,然后打印出您所获得的设备的已发现的GATT服务UUID从扫描结果中调用CBPeripheral
上的discoverServices。您可能会发现没有任何服务,这将使您无法回答上述第一个问题。
获得上述信息后,您可以在开始扫描时指定GATT服务UUID,在后台扫描信标。 在后台,如果您未指定GATT服务UUID ,则无法获得结果,即使您做的结果也会慢得多。