Изменения идентификатора периферийного устройства CoreBluetooth
Я использую CoreBluetooth для подключения к ряду идентичных весов Bluetooth, которые я разработал с использованием модулей BlueGiga BLE113. Мое приложение хранит локальную копию строки CBPeripheral.Identifier.UUIDS каждой шкалы, а также некоторые связанные данные об этой физической шкале, чтобы я мог отличить их друг от друга. Например, "Шкала А" и "Шкала Б"
Моя проблема в том, что время от времени меняется UUIDString устройства. Я могу разрабатывать в течение нескольких дней против устройства, а затем однажды UUID отличается. Масштаб не был сброшен, приложение не было перезапущено, и Bluetooth не был выключен на телефоне.
Мне нужен способ надежной идентификации каждого периферийного устройства Bluetooth (масштаб), и я бы предпочел не вводить жесткие идентификаторы в каждое устройство во время производства.
Есть ли лучший способ определения периферийных устройств на долгосрочную перспективу?
1 ответ
К сожалению, я не думаю, что вы обойдете iOS в изменении периферийных UUID.
В зависимости от того, какой элемент управления вы должны изменить, сервисы / характеристики BLE на весах могут рекламировать дополнительную услугу, которая содержит характеристику, в которую вы вводите пользовательский идентификатор.
На iOS вы можете отсканировать этот сервис и прочитать значение характеристики, чтобы определить масштаб. Таким образом, вы не будете зависеть от UUID, который ОС назначает вашим периферийным устройствам.
Надеюсь это поможет!