至于前面的答案,如果您只对 RSSI 感兴趣,您可以简单地将其放入委托方法中:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
顺便说一句,默认情况下CBCentralManager
只会调用此方法一次。如果您需要在每次CBCentralManager
收到广告数据包时调用此回调,您需要使用CBCentralManagerScanOptionAllowDuplicatesKey
设置为的选项启动扫描YES
:
NSDictionary *scanningOptions = @{CBCentralManagerScanOptionAllowDuplicatesKey: @YES};
[centralManager scanForPeripheralsWithServices:nil options:scanningOptions];
请注意,如果不是绝对必要,Apple 不鼓励使用此选项。
请参阅:iOS 开发人员库 - 与远程外围设备交互的最佳实践