Я работаю над приложением менеджера CoreBluetooth для iPhone. Чтобы иметь возможность повторно подключиться к ранее обнаруженному CBPeripheral, я сохраняю UUID периферийного устройства (в CoreData), а затем вызываю функцию CBCentralManager retrievePeripherals:. Мой didRetrievePeripherals: вызывается обратный вызов, и я могу подключиться и т. д. Пока все хорошо.
Поскольку я повторно подключаюсь к периферийному устройству, о котором я уже знаю, я хотел бы избежать обнаружения его услуг и характеристик. Поэтому я сохраняю UUID сервисов и характеристик (опять же в CoreData вместе с UUID периферийного устройства) при первом подключении.
Но я не могу использовать эти UUID для чтения или записи характеристик, потому что CBPeripheral readValueForCharacteristic: или writeValueForCharacteristic: принимает CBCharacteristic в качестве параметра, а API для создания экземпляра CBCharacteristic отсутствует.
Есть ли способ избежать обнаружения служб и характеристик при повторном подключении к ранее известному периферийному устройству?