2015-11-17 21 views
5

Mam problem z urządzeniem CBP, które ma zaktualizowane usługi: moje urządzenie fizyczne ma przycisk, który aktualizuje usługi reklamowe, ale moja aplikacja wciąż czyta stare usługi w metodzie delegatów didDiscoverServices.Usługi CBP dla urządzeń z systemem iOS nie są aktualizowane

Chociaż po odkryciu urządzenia peryferyjnego w didDiscoverPeripheral, widzę, że usługi są tam aktualne.

Jeśli ponownie uruchomię aplikację, stare usługi nadal tam są! Wygląda na to, że jedynym sposobem, aby moja aplikacja odkryła nowe usługi, jest wyłączenie i ponowne włączenie Bluetooth. Nawet odinstalowanie/ponowne zainstalowanie mojej aplikacji nie wystarczy.

Czy system iOS buforuje usługi na zawsze? Czy istnieje sposób resetowania/usuwania pamięci podręcznej?

Odpowiedz

1

próbowałeś ten Kiedy wywołać metodę klasy CBCentralManager scanForPeripheralsWithServices:options: odkryć Remote peryferyjnych, które są usługi reklamowe, urządzenie centralne używa radia do słuchania dla urządzeń reklamowych, dopóki wyraźnie powiedzieć to, aby zatrzymać

Ref: Best Practices for Interacting with a Remote Peripheral Device

+0

Pewnie. To właśnie robię, przekazując usługi, których szukam, a 'didDiscoverPerirectal' ma te usługi w' advertisementData [CBAdvertisementDataServiceUUIDsKey] '. Ale kiedy jawnie nazywam "[self.peripheral discoverServices: nil];", ta usługa już nie istnieje – marcelosalloum

+0

ok, nie próbowałem tego, ale myślę, że [self.peripheral discoverServices: nil]; będzie aktualizowany dla podłączonego urządzenia peryferyjnego, a nie dla odkrytego urządzenia peryferyjnego .i nie przetestował go na ios, ale zmiany danych reklamowych mogą być widoczne tylko w pakietach reklamowych. popraw mnie jeśli się mylę – Neo

+1

Neo, ten link jest zawsze niesamowity, dziękuję za udostępnienie. – Hemang

Powiązane problemy