Избегайте обнаружения служб и характеристик при повторном подключении в CoreBluetooth


Я работаю над приложением CoreBluetooth manager для iPhone. Чтобы иметь возможность повторно подключиться к ранее обнаруженному CBPeripheral, я сохраняю UUID периферийного устройства (в CoreData) и затем вызываю cbcentralmanager retrievePeripherals:. Мои didRetrievePeripherals: вызывается обратный вызов, и я могу подключиться и т. д. Пока все хорошо.

Поскольку я вновь подключаюсь к периферийному устройству, о котором я уже знаю, я хотел бы избежать обнаружения его услуг и характеристик. Так что я спасаю UUIDs из услуги и характеристики (опять же в CoreData, вместе с UUID периферийного устройства) при первом подключении.

Но я не могу использовать эти UUID для чтения или записи характеристик, потому что CBPeripheral readValueForCharacteristic: или writeValueForCharacteristic: возьмите CBCharacteristic в качестве параметра, и нет API для построения экземпляра CBCharacteristic.

Существует ли какой-либо способ избежать обнаружения служб и характеристик при повторном подключении с ранее известным периферия?

1 9

1 ответ:

Мезулу, вы хотите использовать зашифрованную / парную ссылку – тогда iOS сделает кэширование за вас. Смотрите мой ответ здесь .