2012-10-24 11 views
9

Pracuję nad aplikacją do zarządzania CoreBluetooth na iPhone'a. Aby móc ponownie połączyć się z wcześniej odkrytym CBPeripheral, zapisuję UUID urządzenia peryferyjnego (w CoreData), a następnie wywołuję urządzenia peryferyjne CBCentralManager :. Moje didRetrievePeripherals: wywołanie zwrotne jest wywoływane i mogę się łączyć, itd. Do tej pory tak dobrze.Unikaj odkrywania usług i charakterystyk po ponownym połączeniu w CoreBluetooth

Odkąd nawiązuję połączenie z urządzeniem peryferyjnym, o którym już wiem, chciałbym uniknąć odkrycia jego usług i cech. Tak więc zapisuję UUID usług i cech (ponownie w CoreData, wraz z UUID urządzenia peryferyjnego) podczas pierwszego połączenia.

Ale nie mogę używać tych identyfikatorów UUID do odczytu lub zapisu cech, ponieważ wartość CBV w wersji CBV jest odpowiednikiem parametru readValueForCharacteristic: lub writeValueForCharacteristic: jako parametr należy przyjmować CBCharacteristic i nie ma interfejsu API do budowy instancji CBCharacteristic.

Czy istnieje sposób na uniknięcie odkrywania usług i charakterystyki podczas ponownego łączenia się z wcześniej znanym urządzeniem peryferyjnym?

+0

Witaj, podczas zapisywania identyfikatora UUID znanych urządzeń w CoreData, czy nie możesz zapisać struktury danych dla każdego urządzenia zawierającego usługi i cechy, które one implementują? –

+1

Usługi i cechy urządzenia są identyfikowane za pomocą identyfikatorów UUID, które zapisuję. Ale nie mogę zapisać instancji CBService i CBCharacteristic w CoreData, ponieważ nie pochodzą one z NSManagedObject - przynajmniej nie wiem, jak mogłem to zrobić. A może źle zrozumiałem twoje pytanie? – mezulu

+0

Ok, wiem, że rozumiem twoje pytanie. Myślę, że będziesz musiał zrobić z odkrywaniem charakterystyk: forService: używając UUID ... –

Odpowiedz

3

Mezulu, chcesz użyć zaszyfrowanego/powiązanego łącza - wtedy iOS zrobi buforowanie dla ciebie. Zobacz moją odpowiedź here.

+0

dzięki za tę odpowiedź. Nie wiedziałem, że iOS 6 wprowadził buforowanie usług i charakterystyk. Tego właśnie szukałem. – mezulu

Powiązane problemy