我正在开发一款适用于iPhone的CoreBluetooth管理器应用程序。为了能够重新连接到先前发现的CBPeripheral,我保存外围设备的UUID(在CoreData中),然后调用CBCentralManager的retrievePeripherals:。我的didRetrievePeripherals:回调被调用,我可以连接,等等。到目前为止一直很好。
由于我正在重新连接到我已经了解的外围设备,因此我想避免发现它的服务和特性。所以当我第一次连接时,我保存了服务和特性的UUID(再次在CoreData中,以及外围设备的UUID)。
但我不能使用这些UUID来读取或写入特性,因为CBPeripheral的readValueForCharacteristic:或writeValueForCharacteristic:将CBC特性作为参数,并且没有API来构造CBC特性实例。
有没有办法避免在重新连接以前已知的外围设备时发现服务和特性?