1

iOS 6 应该会缓存已发现的服务和外围设备的特性,以便重新连接到已知外围设备的速度更快。但是,它似乎不适用于我的应用程序。

我在连接到外围设备后保存它,并在重新连接时使用已保存外围设备的 UUID 调用retrievePeripherals。我的 didRetrievePeripherals 被调用,我连接到外围设备。我的 didConnectPeripheral 被调用,我调用了 discoverServices。我期待服务从缓存中返回到我的应用程序。但是,服务表是从我的外围设备中读取的。

因为我的应用程序正忙于读取服务表,所以我错过了从外围设备发送的第一个测量值。

有谁知道为什么没有读取缓存?我需要在某处设置一些选项吗?

4

1 回答 1

2

您应该尝试加密连接。加密连接需要配对,然后才真正打开缓存。普通连接不一定会触发缓存机制,对此也没有官方声明。您还应该尝试 iOS 测试版,看看那里是否发生了变化。;)

您应该考虑的另一件事是优化服务发现。如果测量非常重要,那么首先发现它的特征,一旦完成,继续其他的。

于 2013-08-28T21:27:26.773 回答