在连接之前确定CBP外围设备的类型

时间:2019-01-29 14:39:04

标签: ios swift core-bluetooth thermal-printer cbperipheral

我最近创建了一个应用程序,该应用程序在iOS上使用CoreBluetooth连接到热敏打印机。 除了一件事,一切都很好。 我可以看到20多个蓝牙设备,但只有一个是热敏打印机。 在连接之前,有没有办法让我知道此外围设备是否是热敏打印机,以便我可以显示/隐藏它? 谢谢

1 个答案:

答案 0 :(得分:2)

您正在倒退思考。您无需获取服务列表,然后决定是否连接。您确定所需的服务并进行扫描。

致电scanForPeripherals(withServices:options:)时,几乎应该始终传递您支持的服务列表。如果您传递的是nil,那么除非您要构建通用的BLE扫描器,否则几乎可以肯定会错误地调用它。

discoverServices(_:)也是如此。您很少在此传递nil。您传递您知道如何处理的服务列表。当您知道已经获取了服务时,可以方便地使用.services属性,但是很少有用。如果不需要时调用discoverServices(_:),系统将立即向您发送缓存的数据。