diferencia entre getConnectionInfo () y getScanResults () para detectar cambios en la intensidad de la señal

Estoy tratando de detectar cambios en la intensidad de la señal en una conexión wifi. No estoy seguro de qué método debo usar en mi BroadcastReceiver. ¿Cuál es la diferencia entre usar getConnectionInfo () y getScanResults (), desde donde puedo usar un método relevante para obtener el valor rssi?

Por ejemplo: si uso getConnectionInfo (), luego uso getRssi (). O podría usar getScanResults () y la propiedad "level".

Muestro sus valores usando Toast y no siempre muestra los mismos valores. Cuando se pierde la conexión wifi, getConnectionInfo (). GetRssi () muestra -200, mientras que result.level aún muestra su valor anterior.

¿Alguna idea? ¡Gracias!

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;
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta