4 votes

Plage RSSI pour les icônes WiFi

Quelle est la plage RSSI en stock pour l'icône d'indicateur WiFi dans la barre de notification ?

6voto

David Negron Points 971

Je n'ai pas regardé les anciennes versions, mais voici les informations exactes à partir d'Android 7.1.2.

Le code qui effectue la transformation de RSSI en "niveau" de signal se trouve dans le fichier WifiManager.calculateSignalLevel méthode :

public static int calculateSignalLevel(int rssi, int numLevels) {
    if (rssi <= MIN_RSSI) {
        return 0;
    } else if (rssi >= MAX_RSSI) {
        return numLevels - 1;
    } else {
        float inputRange = (MAX_RSSI - MIN_RSSI);
        float outputRange = (numLevels - 1);
        return (int)((float)(rssi - MIN_RSSI) * outputRange / inputRange);
    }
}

...où MIN_RSSI est de -100 et MAX_RSSI est de -55 ( source ). La plage d'entrée est "dynamique" dans le sens où elle est basée sur le nombre de fichiers de ressources disponibles pour l'icône WiFi, mais dans AOSP, cette valeur sera de 5 car il y a des icônes pour 0-4 barres. En utilisant la logique et les valeurs ci-dessus, les gammes sont approximativement de :

  • -55 ou plus : 4 bars
  • -56 à -66 : 3 barres
  • -67 à -77 : 2 barres
  • -78 à -88 : 1 bar
  • -89 ou moins : 0 bar

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X