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?
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
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
Neo, ten link jest zawsze niesamowity, dziękuję za udostępnienie. – Hemang