Как подключить периферийное устройство / устройство BLE по идентификатору? - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу подключить периферийное устройство, используя идентификатор.Могу ли я это сделать?

centralManager?.connect(peripheral, options: nil)

Я сканирую устройства в одном ViewController и подключаю его в другом ViewController.

Ниже приведены мои требования:

Когда я сканировал устройство и сохранял в следующий раз устройство, которое может появиться на домашнем экране и напрямую подключиться.Поэтому для этого я использую одноэлементный класс для доступа к периферийным данным из одного представления в другое.Но он всегда инициализируется пустым.Поэтому я хочу подключить периферийные устройства с помощью идентификатора.Я не знаю, где мы храним [CBPeripheral] и обращаемся к нему при необходимости.

1 Ответ

3 голосов
/ 29 апреля 2019

Я хочу подключить периферийное устройство с помощью идентификатора. Могу ли я это сделать?

Краткий ответ: НЕТ, Вы не можете этого сделать.

Длинный ответ:

См. Официальный документ Apple.

Нет положения или метода, который используется для соединения с идентификатор, но у Apple есть возможность извлекать периферийные идентификатор.

Давайте обсудим некоторые другие альтернативы

CBPeripheral не реализует NSCoding. Таким образом, почти невозможно хранить объект BLEPeripheral в NSUserDefaults ИЛИ любом другом контейнере.

Лучшее решение - хранить свойства CBPeripheral, такие как имя или идентификатор и т. Д.

UserDefaults.standard.set(Device_name, forKey: "Device_name")
UserDefaults.standard.set(Device_Identifier forKey: "Device_Identifier")

Используя retrievePeripherals(withIdentifiers:), вы можете снова получить значение BLEPeripheral. Тогда вы можете подключиться напрямую, используя этот объект

Вот документация

retrievePeripherals (withIdentifiers:)

Возвращает список известных периферийных устройств по их идентификаторам.

...