Comment obtenir l'intensité de signal connecté WiFi android?

Je veux obtenir la force du signal de la présente wifi qui est connecté avec mon appareil. C'est probablement facile. Mais je suis débutant. Et Il à faire leurs devoirs. Comment l'obtenir?

J'ai essayé ce code. Mais ça ne fonctionne pas.

    registerReceiver(new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        int state = wifi.getWifiState();
        if(state == WifiManager.WIFI_STATE_ENABLED) {
            List<ScanResult> results = wifi.getScanResults();

            for (ScanResult result : results) {
                if(result.BSSID.equals(wifi.getConnectionInfo().getBSSID())) {
                    int level = WifiManager.calculateSignalLevel(wifi.getConnectionInfo().getRssi(),
                            result.level);
                    int difference = level * 100 / result.level;
                    int signalStrangth= 0;
                    if(difference >= 100)
                        signalStrangth = 4;
                    else if(difference >= 75)
                        signalStrangth = 3;
                    else if(difference >= 50)
                        signalStrangth = 2;
                    else if(difference >= 25)
                        signalStrangth = 1;
                    tv.setText(tv.getText() + "\nDifference :" + difference + " signal state:" + signalStrangth);

                }

            }
        }
    }
}, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));

J'ai aussi essayé ce code. Mais ce n'est pas trop de travail.

    int numberOfLevels = 5;
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
Comment expliquer ce "ça ne fonctionne pas" signifie exactement? Astuce: post LogCat avec erreur(s).
dropbox.com/s/7sabuxgcnt5c6lu/log.txt

OriginalL'auteur Emrah Şentürk | 2013-09-16