我刚写了一个简单的应用程序,我扫描并连接到外围设备(也是一个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?
答案 0 :(得分:1)
它有一个解决方法。您可以传递它而不是设备的本地名称,如下所示:
[self.peripheralManager startAdvertising:@{CBAdvertisementDataLocalNameKey : *the UUID*}];
在didDiscoverPeripheral函数的另一个设备中你可以这样得到它:
[advertisementData objectForKey:@"kCBAdvDataLocalName"]