我試圖檢測無線連接中的信號強度變化。我很困惑我應該在我的BroadcastReceiver中使用哪種方法。使用getConnectionInfo()和getScanResults()之間有什麼區別 - 從那裏我可以使用相關的方法來獲取rssi值?getConnectionInfo()和getScanResults()檢測信號強度變化的區別
例如:如果我使用getConnectionInfo(),那麼稍後我會使用getRssi()。或者我可以使用getScanResults()和「level」屬性。
我使用吐司顯示它們的值,它並不總是顯示相同的值。當wifi conn丟失時,getConnectionInfo()。getRssi()顯示-200,而result.level仍顯示其先前的值。
有什麼想法?謝謝!
String netSSID = wifi.wifiMgr.getConnectionInfo().getSSID();
int netRSSI = wifi.wifiMgr.getConnectionInfo().getRssi();
List<ScanResult> results = wifi.wifiMgr.getScanResults();
for (ScanResult result : results) {
if (result.SSID.equalsIgnoreCase(netSSID)) {
anothernetRSSI = result.level;
}
}
*請參閱代碼片段*我使用這兩種方法來檢測當前連接的rssi值。是的,我使用startScan()。好的,在這種情況下,使用getConnectionInfo()。getRssi()是不對的。那麼發送RSSI_CHANGED_ACTION廣播然後使用intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI,0)來獲取新的rssi值呢?這是否與SCAN_RESULTS_AVAILABLE_ACTION一樣,可以檢索任何接入點?所以只要這個值與前一個值不同,它可能會返回另一個AP的rssi值? – springrolls 2010-12-08 08:58:54