如何获取我的蓝牙设备服务UUID?斯威夫特



我正在尝试与我自己的蓝牙体重秤建立基本连接。问题是我无法找到UUID以便连接到设备。

我已经联系了制造商,看看他们是否可以提供UUID,他们说是"FFF0">

当我将ScanForPeripherals功能UUID设置为FFF0时,我的应用程序会记录"central.state is.poweredOn",但我找不到设备。

我知道设备存在,因为当我使用"centralManager.scanForPeripherals(带服务:nil("时,它会定位它。

下面是一些屏幕截图和我的代码。我在这里找不到任何关于这种特殊情况的信息,所以任何见解都将不胜感激。

我不确定他们是否给了我错误的UUID,或者这是我在做的事情。如果是这样,我需要做什么来找到我的特定设备,而不是我周围的所有设备。

下面你可以看到我在哪里扫描外围设备。注释的代码是我设置UUID时的代码。上面是UUID设置为nil的相同代码。

extension ViewController: CBCentralManagerDelegate {
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {         
case .unknown:
print("central.state is .unknown")
case .resetting:
print("central.state is .resetting")
case .unsupported:
print("central.state is .unsupported")
case .unauthorized:
print("central.state is .unauthorized")
case .poweredOff:
print("central.state is .poweredOff")
case .poweredOn:
print("central.state is .poweredOn")
centralManager.scanForsPeripherals(withServices:nil)
//SET CBUUID to FFF0
centralManager.scanForPeripherals(withServices:[bodyScaleServiceCBUUID])
}
}

当我设定为零时。控制台显示我的设备&所有其他广告的设备

当我将UUID设置为FFF0时,我只得到central.state is .poweredOn,并且找不到任何设备。

提前感谢您的任何见解。

请检查此链接以获取蓝牙服务的UUID。

在这里,我可以发现体重秤的UUID是0x181D。请试试这个,

let weightScaleServiceCBUUID = CBUUID(string: "0x181D") 

最新更新