似乎AirPods和iPhone可以在非常敏感的层面上进行通信。物理靠近设备(1英尺远)的AirPods将触发iPhone做出反应。
iPhone能否真正检测到蓝牙信号?我现在正在使用蓝牙,但我似乎无法达到这种信号灵敏度。
答案 0 :(得分:24)
他们曾经有一些额外的措施来找出距离。正如hotpaw2在评论
中所注意到的那样func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
if let power = advertisementData[CBAdvertisementDataTxPowerLevelKey] as? Double{
print("Distance is ", pow(10, ((power - Double(truncating: RSSI))/20)))
}
}
<强> TL:DR 强>
RSSI读数不是很稳定,并且高度依赖于环境
它也可能因许多因素而变化,包括传感/发射无线电的功率和灵敏度,以及环境因素(你在里面,外面吗?附近有很多人吗?嘈杂的无线环境或不,等等)。
然而,问题是信标信号实际上是无线电波,并且可以被金属,墙壁,水等吸收。由于它们在常用的2.4GHz频带中传输无线电信号,因此从信标接收的信号强度会有所不同。广泛因为干扰。查找距离的最常用公式之一是
d = 10 ^((TxPower - RSSI)/ 20)
TxPower通常称为发射功率
txPower值将在BLE广告数据中提供(仅当广播公司(外围设备)提供其Tx功率电平时才可用。)
根据Apple文档,CBAdvertisementDataTx中的CBAdvertisementDataTxPowerLevelKey值
委托访问原始广告数据的方法
optional func centralManager(_ central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber)
也可以使用BlueCap API
进行访问了解AirPlay的优势比传统蓝牙更多
https://www.cambridgeaudio.com/blog/airplay
根据Link
中的下图 如果你覆盖信标,RSSI将会瘫痪(例如,一个人进入你和信标之间)。也就是说,你仍然处于相同的距离,但是RSSI会下降 - 所以你要在RSSI上建立距离估计,距离就会增加,而不会移动一英寸。上述许多解释都来自其他网站。
我希望它总结你的需要!