使用 UUID 检查外围设备是否可达
Check whether a peripheral is reachable using UUID
在 table 视图控制器列表中,我拥有之前连接的所有外围设备。当应用程序加载时,我想检查是否可以访问每个外围设备。可达性是指设备是否已打开或是否在范围内。当我只有列表中不同外围设备的 UUID 时如何实现?
您通过连接 (CBCentralManager.connect
) 测试可达性。如果设备有广告,您可以再次扫描并重新发现它(CBCentralManager.scanForPeripherals
),但一般来说,不扫描而直接连接到已知设备会更快更容易。
如果您可以连接并获得响应,则表示可以访问。没有其他方法可以知道某些东西是可达的。 (任何网络协议都是如此。确定另一个节点可用的方式是发送一个数据包并取回一个数据包。)
请注意,许多 BLE 设备只能接受单个连接,并且在连接时不做广告。因此,如果其他设备已连接到您的外围设备,它可能对您不可见。改善这一点通常需要重新制作固件。
在 table 视图控制器列表中,我拥有之前连接的所有外围设备。当应用程序加载时,我想检查是否可以访问每个外围设备。可达性是指设备是否已打开或是否在范围内。当我只有列表中不同外围设备的 UUID 时如何实现?
您通过连接 (CBCentralManager.connect
) 测试可达性。如果设备有广告,您可以再次扫描并重新发现它(CBCentralManager.scanForPeripherals
),但一般来说,不扫描而直接连接到已知设备会更快更容易。
如果您可以连接并获得响应,则表示可以访问。没有其他方法可以知道某些东西是可达的。 (任何网络协议都是如此。确定另一个节点可用的方式是发送一个数据包并取回一个数据包。)
请注意,许多 BLE 设备只能接受单个连接,并且在连接时不做广告。因此,如果其他设备已连接到您的外围设备,它可能对您不可见。改善这一点通常需要重新制作固件。