Android WLAN nicht die SSID und BSSID von ScanResult

Ich habe diesen code, den ich Scannen möchte, für die Netze, und dann schreiben Sie alle in die listview. Aber das problem ist, dass die ssid und bssid nicht zeigen. Alles andere zeigt aber nicht die ssid.

Auch, was ist der beste Weg zur Aktualisierung der listview, in jeder Sekunde, so können Sie die signal-Stärke tatsächliche signal?

import java.util.List;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.example.wifi.R;

public class MainActivity extends Activity {

    WifiManager wifiManager;
    WifiScanReceiver wifiReciever;
    ListView list;
    String wifis[];
    WifiInfo wifiInfo;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = (ListView) findViewById(R.id.text);
        wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        wifiReciever = new WifiScanReceiver();
        wifiInfo = wifiManager.getConnectionInfo();
        wifiManager.startScan();
    }



    protected void onPause() {
        unregisterReceiver(wifiReciever);
        super.onPause();
    }

    protected void onResume() {
        registerReceiver(wifiReciever, new IntentFilter(
                WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
        super.onResume();
    }

    class WifiScanReceiver extends BroadcastReceiver {
        @SuppressLint("UseValueOf")
        public void onReceive(Context c, Intent intent) {
            List<ScanResult> wifiScanList = wifiManager.getScanResults();
            wifis = new String[wifiScanList.size()];
            for (int i = 0; i < wifiScanList.size(); i++) {
                wifis[i] = ((wifiScanList.get(i)).toString());
            }

            list.setAdapter(new ArrayAdapter<String>(getApplicationContext(),
                    android.R.layout.simple_list_item_1, wifis));
        }
    }
}
  • wenn u haben networkConfig-Objekt kann u seine ssid
  • verwenden wifiInfo.getSSID();
  • ja ich weiß, aber das scannt alle Netze, also wenn ich "wifiInfo.getSSID();" bekomme ich nur die 1 wifi name im verbunden zu anstatt die Namen aller Netzwerke.
InformationsquelleAutor Isac | 2015-04-20
Schreibe einen Kommentar