核心蓝牙peripheral.name是零

时间:2015-12-28 06:54:50

标签: ios objective-c core-bluetooth bluetooth-lowenergy

我只想获得附近蓝牙设备列表'名。但是,peripheral.name始终为零。广告包中的名称也始终为零。我附近有7台设备。我可以看到他们而不是他们的名字。

我正在使用以下代码:

[self.centralManager scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:TRANSFER_SERVICE_UUID]]
                                            options:nil];


- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI

{

    NSLog(@"Discovered %@ at %@", peripheral.name, RSSI);
    _discoveredPeripheral = peripheral;
    if(![self.mRemoteDevices containsObject:_discoveredPeripheral])
    {
        NSArray *peripherels = [self.centralManager retrievePeripheralsWithIdentifiers:@[_discoveredPeripheral.identifier]];
        [self.mRemoteDevices addObject:[peripherels objectAtIndex:0]];
        [self.mRemoteTable reloadData];
    }
    NSLog(@"retrieving peripherels: %@", self.mRemoteDevices);
}

1 个答案:

答案 0 :(得分:1)

确实经常发现在发现期间未解析外围设备名称。但是,在您发现外围设备(并且可能与其连接后,我不确定这是否真的有必要)之后,您很快就会在CBPeripheralDelegate回调- peripheral:didUpdateName:中收到其正确的名称。假设不需要先前连接到外设,您应该等待此回调并在回调代码中更新mRemoteDevices中正确设备的名称。