我试图检测无线连接中的信号强度变化。我很困惑我应该在我的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