我可以在iOS中测量蓝牙信号强度吗?
我可以测量iPhone范围内蓝牙设备的信号强度吗 基本上,我想做的是扫描范围内的设备列表,然后看看哪一个具有最高的信号强度我可以在iOS中测量蓝牙信号强度吗?,ios,objective-c,iphone,bluetooth,Ios,Objective C,Iphone,Bluetooth,我可以测量iPhone范围内蓝牙设备的信号强度吗 基本上,我想做的是扫描范围内的设备列表,然后看看哪一个具有最高的信号强度 在iOS中可能吗?如果可能,我将如何做 是的,有一种方法可以测量蓝牙低能量(4.0)的信号强度,它是RSSI编号。扫描外围设备时,将标记CBCentralManagerScanOptionAllowDuplicatesKey设置为YES,如下所示: NSDictionary * dictionary = [NSDictionary dictionaryWithObjects
在iOS中可能吗?如果可能,我将如何做 是的,有一种方法可以测量蓝牙低能量(4.0)的信号强度,它是RSSI编号。扫描外围设备时,将标记CBCentralManagerScanOptionAllowDuplicatesKey设置为YES,如下所示:
NSDictionary * dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];
// Start scanning for peripherals
[cmanager scanForPeripheralsWithServices:nil options:dictionary];
如果你想看到RSSI号码在不编写任何代码的情况下工作,你应该在iTunes中查看该应用程序。当您连接到外围设备时,它会在连接时每秒向您显示更新的RSSI编号。请查看:
这就是你要找的。免责声明:核心蓝牙仅适用于蓝牙4 LE
如果确切的范围无关紧要,但您对扫描一般可用的设备感兴趣,您可以查看github项目,它允许您扫描周围的所有蓝牙设备(不仅仅是蓝牙设备)。再次声明:我是BeeTee的作者 当您使用CBCentralManager编写“中央”代码时,您最终将连接到您要查找的CBCentralManager外围设备。连接到外围设备后,保留对它的引用,将对象设置为外围设备的委托,并在外围设备上调用“”。如果您编写了一个调用“readRSSI”的方法,您将得到一个委托回调,您可以使用 此问题的另一个建议答案是在扫描时提供“允许重复”键。字典键的文档在传递到时表示“禁用此过滤可能会对电池寿命产生不利影响,只有在必要时才应使用” 如果选择编写延迟调用,则可以调整调用频率,以帮助管理对用户电池的影响
- (void)centralManager:(CBCentralManager *)central
didDiscoverPeripheral:(CBPeripheral *)peripheral
advertisementData:(NSDictionary *)advertisementData
RSSI:(NSNumber *)RSSI
{ ... }