如何使用标识符连接外围设备/ BLE设备?

问题描述 投票:0回答:1

我想使用标识符连接外围设备。我可以做吗?

centralManager?.connect(peripheral, options: nil)

我在一个ViewController扫描设备,并在另一个ViewController连接它。

以下是我的要求:

当我扫描设备并保存下次可以出现在主屏幕并直接连接的设备时。因此,为此,我使用singleton类从一个视图访问外围数据到另一个视图。但它始终初始化为空。所以我想通过使用标识符来连接外围设备。我不知道我们在哪里存储[CBPeripheral]并在需要时访问它。

ios swift bluetooth-lowenergy core-bluetooth
1个回答
1
投票

我想使用标识符连接外围设备。我可以做吗?

简答:不,你不能这样做。

答案很长:

Refer apple official document.

没有用于连接标识符的规定或方法但是,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值。然后您可以使用此对象直接连接

Here is the documentation

retrievePeripherals(withIdentifiers :)

按标识符返回已知外围设备的列表。