我正在尝试使用核心蓝牙创建一个简单的浏览器,它可以发现附近的iPhone和iPad,并在表格视图中显示它们。到目前为止,我正在实施中央经理并收到通知。这些信息似乎有点神秘
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
NSLog(@"Did discover peripheral. peripheral: %@ rssi: %@, UUID: %@ advertisementData: %@ ", peripheral, RSSI, peripheral.UUID, advertisementData);
}
这些信息看起来有点神秘,因为并非某些原因并非所有设备都有“名称”参数。
2014-09-22 13:11:13.142 WhoDat [3333:60b]发现了外围设备。外围:
0x1780b4f40 identifier = 9373F3AD-726D-2EC9-AB2C-BBAB9B2ED319, Name = "(null)", state = disconnected> rssi: -63, UUID: <CFUUID 0x178036ee0> 9373F3AD-726D-2EC9-AB2C-BBAB9B2ED319 advertisementData: {
kCBAdvDataChannel = 37;
kCBAdvDataIsConnectable = 1;
}
而其他人则
2014-09-22 13:13:26.224 WhoDat[3333:60b] Did discover peripheral. peripheral: <CBPeripheral: 0x1700b4b80 identifier = 74E42396-CB35-3FB7-A855-F2BB78AC2C78, Name = "Zip", state = disconnected> rssi: -95, UUID: <CFUUID 0x17002da60> 74E42396-CB35-3FB7-A855-F2BB78AC2C78 advertisementData: {
kCBAdvDataChannel = 39;
kCBAdvDataIsConnectable = 1;
kCBAdvDataServiceData = {
"Device Information" = <0204>;
};
kCBAdvDataServiceUUIDs = (
"ADAB67D3-6E7D-4601-BDA2-BFFAA68956BA"
);
}
但我似乎无法区分什么是什么。我错过了什么吗?
答案 0 :(得分:0)
您没有收到姓名的最可能原因是该设备没有在其广告包中刊登广告。
为了使事情变得更加奇怪,CoreBluetooth会进行一些缓存,这会在与设备交互时产生奇怪的不一致。
如果您连接到所述设备,一个主要的示例是不会通告它的名称的设备将显示它的缓存名称。
我的建议是用一串&#34; No Name&#34;来代表它。直到你通过连接到所述设备收到一个。