【发布时间】:2017-01-19 21:38:32
【问题描述】:
我正在使用以下代码进行扫描:
self.centralManager?.scanForPeripherals(withServices: serviceUUID, options: nil)
如果我将serviceUUID 替换为nil 或将其定义为,这很好用(我的tableview 填充了BLE 设备)
let serviceUUID = [CBUUID(string:"1803")]
但它不适用于
let serviceUUID = [CBUUID(string:"00001803-494c-4f47-4943-544543480000")]
使用 Lightblue 进行了双重检查,但服务 UUID 似乎没有任何拼写错误。 Lightblue screenshot
【问题讨论】:
-
你可以扫描寻找servicesUUID,它已经被设备广播了,也就是说必须在外设的advertisingData中找到。如果没有,就找不到了。但是设备通常不会广播所有的 UUID,它们通常会广播一两个细节(例如,要知道它们来自那家公司,或者提供的设备类型,例如它们具有血压服务的类型,等)
-
试试
let serviceUUID = [CBUUID(string:"00001803-494C-4F47-4943-544543480000")],大写字母?我不记得它是否区分大小写。或者只是在选项中使用nil,将广告数据记录在didDiscoverPeripheral:中并在此处复制粘贴找到的值。 -
感谢 Larme,尝试了大写和相同的结果,不区分大小写。我会尝试你的建议并从那里开始工作。
标签: ios swift bluetooth-lowenergy core-bluetooth