CoreBluetooth: какова продолжительность жизни уникальных UUID

После этого вопроса

После подключения к периферии я могу получить его CFUUIDRef, который является уникальным, и может использовать его для повторного подключения через retrievePeripherals. Однако я обнаружил, что не могу использовать его для повторного подключения после закрытия приложения.

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

Ответ 1

Короче говоря, ДА, вы можете использовать UUID для повторного подключения к тому же устройству даже после закрытия приложения (точно так, как вы говорите). Я сделал это с каждым одним из моих приложений для ядра и я гарантирую вам 100%, что именно то, как вы должны это делать.

Я предполагаю, однако, что вы не спариваетесь с периферийным? Это большая проблема. Вам нужно фактически установить запрос на сопряжение и получить периферийное устройство для отображения в таблице bluetooth. UUID затем затвердеет с устройством iOS и останется до тех пор, пока вы не сбросите настройки сети устройства iOS. (Это, конечно, зависит от чипсета. В то время как это справедливо для некоторых из наиболее распространенных устройств в отрасли, это может быть достигнуто без него, хотя. Укажите свой набор микросхем, и я подтвержу, знаю ли я один или другой )

Другая возможность заключается в том, что ваше устройство BLE имеет проблему с прошивкой, после которой вы отключитесь, он заставляет себя в рекламный режим или что-то в этом роде. Это также будет связано с вашей способностью к повторному подключению. Дайте мне знать, если у вас есть вопросы!