Sto lavorando a un'app di gestione CoreBluetooth per un iPhone. Per essere in grado di riconnettersi a un CBPeripheral scoperto in precedenza, salvi l'UUID della periferica (in CoreData) e quindi richiama RecuperoPeriferiche di CBCentralManager :. My didRetrievePeripherals: il callback è chiamato e posso connettermi, ecc. Fin qui tutto bene.Evita di rilevare servizi e caratteristiche su una riconnessione in CoreBluetooth
Dal momento che mi sto ricollegando a una periferica che conosco già, vorrei evitare di scoprire i suoi servizi e le sue caratteristiche. Così, quando connetto per la prima volta, salvo gli UUID dei servizi e delle caratteristiche (di nuovo in CoreData, insieme all'UUID della periferica).
Ma non riesco a utilizzare questi UUID per leggere o scrivere le caratteristiche perché readValueForCharacteristic di CBPeripheral: o writeValueForCharacteristic: prendere un carattere CBC come parametro e non esiste alcuna API per costruire un'istanza CBC.
C'è un modo per evitare di scoprire servizi e caratteristiche durante la riconnessione con una periferica precedentemente nota?
Salve, mentre si salva l'UUID dei dispositivi noti in CoreData, non si può semplicemente salvare una struttura dati per ogni dispositivo contenente i servizi e le caratteristiche che implementano? –
I servizi e le caratteristiche di un dispositivo sono identificati dagli UUID, che salvo. Ma non posso salvare istanze di CBService e caratteri CBC in CoreData perché non sono derivate da NSManagedObject - almeno, non so come potrei farlo. O ho frainteso la tua domanda? – mezulu
Ok, so capire la tua domanda. Penso che avrai a che fare con discoverCharacteristics: forService: usando gli UUID ... –