getConnectionInfo()和getScanResults()之间的区别,用于检测信号强度的变化

我正在尝试检测wifi连接中的信号强度变化。我对我应该在BroadcastReceiver中使用哪种方法感到困惑。使用getConnectionInfo()和getScanResults()之间有什么区别 - 然后我可以使用相关方法来获取rssi值? 例如:如果我使用getConnectionInfo(),那么稍后我会使用getRssi()。或者我可以使用getScanResults()和“level”属性。 我使用Toast显示它们的值,但它并不总是显示相同的值。当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仅在您连接到它的设备和接入点之间可用。 (RSSi是您连接到它的接入点的信号电平) 但是当你想要获得所有范围内wifi接入点的等级时,你应该使用startScan并获取scanResult并获取每个范围内wifi接入点的等级属性。 这有用吗?     
仅当使用
startScan()
时才使用
getScanResults()
。扫描是异步的,在完成时发送
SCAN_RESULTS_AVAILABLE_ACTION
广播。并且,扫描结果将用于扫描找到的任何接入点,如果您连接到任何接入点,则可能包括您连接的接入点以外的接入点。     

要回复问题请先登录注册