一、WfFi Rtt
1.基礎知識
IEEE802.11mcWi-Fi協議(即Wi-FiRound-Trip-Time,RTT),利用此項技術及可以進行室內定位,因此爲了使用此項技術,只有在硬件支持的設備上,應用纔可以使用最新的RTT API以測量附近具有RTT功能的Wi-FiAP。
https://www.cnblogs.com/huangguanyuan/p/9990828.html
rtt測試用例如下:
https://blog.csdn.net/yi_master/article/details/80083365
2.實際調試
2.1.支持11mc的ap信息如下
SSID: AndroidAP_9959, BSSID: 00:0b:a0:bc:7d:a6, capabilities: [WPA2-PSK-CCMP][ESS], level: -24, frequency: 5240, timestamp: 3004394630,
distance: ?(cm), distanceSd: ?(cm), passpoint: no, ChannelBandwidth: 2, centerFreq0: 5210, centerFreq1: 0,
80211mcResponder: is supported, Carrier AP: no, Carrier AP EAP Type: -1, Carrier name: null,Radio Chain Infos: [RadioChainInfo: id=0, level=-26, RadioChainInfo: id=1, level=-27
2.2. 通過rtt協議交互後的信息如下
status=0, mac=00:0b:a0:bc:7d:a6, peerHandle=<null>, distanceMm=-751, distanceStdDevMm=150, rssi=-38,
numAttemptedMeasurements=8, numSuccessfulMeasurements=7, lci=[B@dfc4f86, lcr=[B@c4ce047, timestamp=3005199
設備未進行rtt校準;返回state爲1,即失敗:
status=1, mac=00:0b:a0:bc:7d:a6, peerHandle=<null>, distanceMm=0, distanceStdDevMm=0, rssi=-48, numAttemptedMeasurements=8, numSuccessfulMeasurements=0, lci=[B@5d5250, lcr=[B@b09c49, timestamp=101132]
3.Android調用邏輯
首先,調用WifiManager的startScan接口並獲取掃描列表getScanResults
其次,判斷其中AP的ScanResult是否支持80211mc:scanResult.is80211mcResponder
最後,最關鍵的接口是WifiRttManager.startRanging(其中帶有該AP作爲參數)