2012-10-24 9 views
9

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?

+0

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? –

+1

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

+0

Ok, so capire la tua domanda. Penso che avrai a che fare con discoverCharacteristics: forService: usando gli UUID ... –

risposta

3

Mezulu, si desidera utilizzare un collegamento crittografato/accoppiato, quindi iOS eseguirà la memorizzazione nella cache. Vedere la mia risposta here.

+0

grazie per questa risposta. Non ero a conoscenza del fatto che iOS 6 avesse introdotto il caching di servizi e caratteristiche. Questo è quello che stavo cercando. – mezulu

Problemi correlati