我最近创建了一个应用程序,该应用程序在iOS上使用CoreBluetooth连接到热敏打印机。 除了一件事,一切都很好。 我可以看到20多个蓝牙设备,但只有一个是热敏打印机。 在连接之前,有没有办法让我知道此外围设备是否是热敏打印机,以便我可以显示/隐藏它? 谢谢
答案 0 :(得分:2)
您正在倒退思考。您无需获取服务列表,然后决定是否连接。您确定所需的服务并进行扫描。
致电scanForPeripherals(withServices:options:)
时,几乎应该始终传递您支持的服务列表。如果您传递的是nil
,那么除非您要构建通用的BLE扫描器,否则几乎可以肯定会错误地调用它。
discoverServices(_:)
也是如此。您很少在此传递nil
。您传递您知道如何处理的服务列表。当您知道已经获取了服务时,可以方便地使用.services
属性,但是很少有用。如果不需要时调用discoverServices(_:)
,系统将立即向您发送缓存的数据。