Я только начал с базовой платформы bluetooth для iOS, и я разрабатываю приложение, которое должно постоянно сканировать устройства BLE, чтобы я мог получать их номер RSSI каждую минуту или около того.
В настоящее время у меня есть:
manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:FALSE], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[manager scanForPeripheralsWithServices:nil options:options];
запускает сканирование моего приложения для устройств BLE и вызывает метод делегата при обнаружении устройства:
- (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);
//Do something when a peripheral is discovered.
rssiLabel.text = [RSSI stringValue];
[manager retrievePeripherals:[NSArray arrayWithObject:(id)peripheral.UUID]];}
этот метод возвращает мне номер RSSI периферийного устройства, который я могу отобразить. Последняя строка затем вызывает этот метод делегата:
- (void) centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals {
NSLog(@"Currently known peripherals :");
int i = 0;
for(CBPeripheral *peripheral in peripherals) {
NSLog(@"[%d] - peripheral : %@ with UUID : %@",i,peripheral,peripheral.UUID);
}
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:FALSE], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[manager scanForPeripheralsWithServices:nil options:options];
}
Кажется, этот код работает и выполняет сканирование примерно каждую минуту, но я не совсем понимаю, почему он работает ...
Документация по ядру bluetooth довольно скудна, поэтому, если у кого-то есть какие-либо идеи о том, как это сделать, или есть лучший способ сделать то, что я пытаюсь сделать, я буду признателен за помощь!