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