我正在尝试从几个蓝牙外围设备测量 iOS(6 和 BLE)上的 RSSI 指示器。我可以使用 scanForPeripheral 获得 RSSI:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[_manager scanForPeripheralsWithServices:nil
options:options];
加上:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
这可行,但我无法控制数据包接收的速率,结果似乎不确定。
我读过:https ://stackoverflow.com/a/12486927/270209但我的速率根本不接近 100 毫秒(更多 1~2 秒)
如果我连接到设备,readRSSI 的结果似乎更可靠。
我正在寻找一种方法来“刺激”外围设备以在扫描模式下进行更频繁的更新,或者一次连接到多个外围设备的方法。
谢谢
编辑:我也尝试过快速开始/停止扫描,似乎在开始扫描时检测到更多设备并且更新更频繁