Изменения идентификатора периферийного устройства CoreBluetooth

Я использую CoreBluetooth для подключения к ряду идентичных весов Bluetooth, которые я разработал с использованием модулей BlueGiga BLE113. Мое приложение хранит локальную копию строки CBPeripheral.Identifier.UUIDS каждой шкалы, а также некоторые связанные данные об этой физической шкале, чтобы я мог отличить их друг от друга. Например, "Шкала А" и "Шкала Б"

Моя проблема в том, что время от времени меняется UUIDString устройства. Я могу разрабатывать в течение нескольких дней против устройства, а затем однажды UUID отличается. Масштаб не был сброшен, приложение не было перезапущено, и Bluetooth не был выключен на телефоне.

Мне нужен способ надежной идентификации каждого периферийного устройства Bluetooth (масштаб), и я бы предпочел не вводить жесткие идентификаторы в каждое устройство во время производства.

Есть ли лучший способ определения периферийных устройств на долгосрочную перспективу?

1 ответ

Решение

К сожалению, я не думаю, что вы обойдете iOS в изменении периферийных UUID.

В зависимости от того, какой элемент управления вы должны изменить, сервисы / характеристики BLE на весах могут рекламировать дополнительную услугу, которая содержит характеристику, в которую вы вводите пользовательский идентификатор.

На iOS вы можете отсканировать этот сервис и прочитать значение характеристики, чтобы определить масштаб. Таким образом, вы не будете зависеть от UUID, который ОС назначает вашим периферийным устройствам.

Надеюсь это поможет!

Другие вопросы по тегам