我正在爲iPhone的CoreBluetooth管理器應用程序工作。爲了能夠重新連接到先前發現的CBPeripheral,我保存了外設的UUID(在CoreData中),然後調用CBCentralManager的retrievePeripherals :.我didRetrievePeripherals:回調被稱爲,我可以連接,等等到目前爲止好。避免在CoreBluetooth重新連接時發現服務和特徵
由於我重新連接到我已經瞭解的外設,因此我想避免發現它的服務和特性。因此,當我第一次連接時,我保存了服務和特性的UUID(再次在CoreData中,以及外設的UUID)。
但我不能使用這些UUID讀取或寫入特徵,因爲CBPeripheral的readValueForCharacteristic:或writeValueForCharacteristic:將CBCharacteristic作爲參數,並且沒有構造CBCharacteristic實例的API。
有沒有辦法避免在重新連接之前已知的外設時發現服務和特性?
你好,當你在CoreData中保存已知設備的UUID時,你能否爲每個包含它們實現的服務和特徵的設備保存一個數據結構? –
設備的服務和特性由我保存的UUID標識。但是我不能在CoreData中保存CBService和CBCharacteristic的實例,因爲它們不是從NSManagedObject派生的 - 至少,我不知道我該怎麼做。或者我誤解了你的問題? – mezulu
好吧,我知道理解你的問題。我認爲你需要與discoverCharacteristics:forService:使用UUIDs ... –