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