如何在CoreBluetooth框架中传递设备UUID以便客户端稍后重新连接

时间:2012-08-26 07:16:20

标签: ios core-bluetooth bluetooth-lowenergy cbperipheral

我刚写了一个简单的应用程序,我扫描并连接到外围设备(也是一个IOS设备)。但是,我从ConnectPeripheral函数返回的CBPeripheral对象没有设备UUID,它始终为null。现在我试图了解我在哪里设置它以便它被传递。 这就是我在做的事情。

宣传我正在做的服务

NSDictionary *advertisingDict=[NSDictionary dictionaryWithObject: services forKey:CBAdvertisementDataServiceUUIDsKey]
[manager startAdvertising:advertisingDicts];

(从框架中我了解到我无法在广告包中传递设备UUID。如果我错了,请纠正我)

我的客户端扫描服务并进入功能

centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral

正如预期的那样,peripheral.uuid为null。如果我在这个外设上调用connectPeripheral也可以正常工作。当uuid为null时,我不确定它如何理解连接哪个设备。我还需要做什么如果我想稍后重新连接。我如何填写这个uuid?

1 个答案:

答案 0 :(得分:1)

它有一个解决方法。您可以传递它而不是设备的本地名称,如下所示:

[self.peripheralManager startAdvertising:@{CBAdvertisementDataLocalNameKey : *the UUID*}];

在didDiscoverPeripheral函数的另一个设备中你可以这样得到它:

[advertisementData objectForKey:@"kCBAdvDataLocalName"]