2015-11-17 3 views
5

У меня возникли проблемы с CBPeripheral, у которого есть обновленные сервисы: у моего физического устройства есть кнопка, которая обновляет рекламные услуги, но мое приложение все еще читает старые службы в методе делегирования didDiscoverServices.iOS CBPeripheral Services не обновляется

Хотя, когда я обнаруживаю периферийное устройство в didDiscoverPeripheral, я вижу, что услуги там актуальны.

Если я снова запустил приложение, старые службы все еще там! Кажется, единственный способ получить мое приложение, чтобы открыть новые службы, отключает и снова отключает Bluetooth. Даже удалить/переустановить мое приложение недостаточно.

Предоставляет ли iOS услуги навсегда? Есть ли способ сбросить/стереть кеш?

ответ

1

вы пробовали это При вызове scanForPeripheralsWithServices:options: метода класса CBCentralManager обнаружить удаленный периферические о том, что рекламируют услуги, ваше центральное устройство использует радио для прослушивания рекламных устройств, пока вы явно не сказать ему, чтобы остановить

Ref: Best Practices for Interacting with a Remote Peripheral Device

+0

Несомненно. Это то, что я делаю, передавая службы, которые я ищу, и 'didDiscoverPeripheral' имеет эти службы в' advertData [CBAdvertisementDataServiceUUIDsKey] '. Но когда я явно называю '[self.peripheral discoverServices: nil];', эта служба больше не существует – marcelosalloum

+0

ОК, я не пробовал это, но думаю [self.peripheral discoverServices: nil]; будет обновляться для подключенного периферийного устройства, а не обнаруженного периферийного устройства. Я не тестировал его на ios, но изменения рекламных данных могут отображаться только в рекламных пакетах. исправьте меня, если я ошибаюсь – Neo

+1

Neo, эта ссылка всегда потрясающая, спасибо за обмен. – Hemang

Смежные вопросы