Я просто хочу иметь список ближайших имен устройств Bluetooth. Однако peripheral.name
всегда равен нулю. Название в рекламном пакете также всегда равно нулю. У меня есть 7 устройств поблизости. Я вижу их, но не их имена.Core bluetooth peripheral.name nil
Я использую следующий код:
[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);
}
Я не уверен, но может быть, вам нужно передать такие варианты. @ {CBCentralManagerScanOptionAllowDuplicatesKey: [NSNumber numberWithBool: NO]} вместо nil. У него много вариантов. У меня такое использование. –
Попробуйте не подключаться, пока у вас нет имени или рекламных данных. Если я правильно помню, эта информация идет по частям и может появляться каждый раз, когда появляется новая информация. Возможно, вам придется изменить ключевой параметр allow duplicates. – Larme