Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios CoreBluetooth未缓存发现的服务和特征_Ios_Core Bluetooth - Fatal编程技术网

Ios CoreBluetooth未缓存发现的服务和特征

Ios CoreBluetooth未缓存发现的服务和特征,ios,core-bluetooth,Ios,Core Bluetooth,据推测,iOS 6会缓存发现的服务和外围设备的特征,以便更快地重新连接到已知的外围设备。但是,它在我的应用程序中似乎不起作用 连接到外围设备后,我保存了它,在重新连接时,我使用保存的外围设备的UUID调用retrievePeripherals。我的didRetrievePeripherals被呼叫,我连接到外围设备。我的外设被呼叫,我呼叫discoverServices。我希望服务从缓存返回到我的应用程序。但是,服务表是从我的外围设备读取的 因为我的应用程序正忙于读取服务表,所以我错过了从外围设

据推测,iOS 6会缓存发现的服务和外围设备的特征,以便更快地重新连接到已知的外围设备。但是,它在我的应用程序中似乎不起作用

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

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


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

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


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

您从何处获得该信息?我正在调查iOS中的这种特殊行为,很多人都在谈论加密。例如,在安卓系统中,无论是普通通信还是加密通信,在第一次发现后都会自动在“引擎盖下”完成。我刚刚找到了它,它在2012年WWDC CoreBooth session PDF第123页上写道:。奇怪的是,在下一次的WWDC中没有提到这一点。。