AirPodsとiPhoneは非常に敏感なレベルで通信できるようです。 AirPodsを物理的にデバイスの近く(1フィート離れたところ)に移動すると、iPhoneが反応します。
IPhoneは本当にこのような精度でBluetooth信号を検出できますか?現在Bluetoothを使用していますが、このレベルの信号感度に到達できないようです。
彼らはかつて、距離を知るためにいくつかの追加の対策を講じていました。コメントで 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.4 GHz帯域で無線信号を送信するため、ビーコンから受信される信号強度は、干渉。
距離を見つけるために最もよく使用される式の1つは
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を使用してもアクセスできます
従来のBluetoothよりもAirPlayの利点を知るには
https://www.cambridgeaudio.com/blog/airplay
下の画像によると Link
RSSIは、ビーコンを覆うとダウンします(たとえば、あなたとビーコンの間に人が入ってくるなど)。つまり、あなたはまだ同じ距離にいますが、RSSIは下がります。RSSIに基づいて距離の見積もりを行う場合、1インチも移動せずに距離が上がります。
上記の説明の多くは他のサイトからのものです。
私はそれがあなたの必要性を要約することを願っています!