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?
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ą? –
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
Ok, wiem, że rozumiem twoje pytanie. Myślę, że będziesz musiał zrobić z odkrywaniem charakterystyk: forService: używając UUID ... –