У меня возникли проблемы с CBPeripheral, у которого есть обновленные сервисы: у моего физического устройства есть кнопка, которая обновляет рекламные услуги, но мое приложение все еще читает старые службы в методе делегирования didDiscoverServices
.iOS CBPeripheral Services не обновляется
Хотя, когда я обнаруживаю периферийное устройство в didDiscoverPeripheral
, я вижу, что услуги там актуальны.
Если я снова запустил приложение, старые службы все еще там! Кажется, единственный способ получить мое приложение, чтобы открыть новые службы, отключает и снова отключает Bluetooth. Даже удалить/переустановить мое приложение недостаточно.
Предоставляет ли iOS услуги навсегда? Есть ли способ сбросить/стереть кеш?
Несомненно. Это то, что я делаю, передавая службы, которые я ищу, и 'didDiscoverPeripheral' имеет эти службы в' advertData [CBAdvertisementDataServiceUUIDsKey] '. Но когда я явно называю '[self.peripheral discoverServices: nil];', эта служба больше не существует – marcelosalloum
ОК, я не пробовал это, но думаю [self.peripheral discoverServices: nil]; будет обновляться для подключенного периферийного устройства, а не обнаруженного периферийного устройства. Я не тестировал его на ios, но изменения рекламных данных могут отображаться только в рекламных пакетах. исправьте меня, если я ошибаюсь – Neo
Neo, эта ссылка всегда потрясающая, спасибо за обмен. – Hemang