1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Wifi Netze scannen...

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von kuekue, 17.03.2010.

  1. kuekue, 17.03.2010 #1
    kuekue

    kuekue Threadstarter Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    17.03.2010
    Hi there! Ich will/muss ein Programm schreiben, das mir sämtliche in Reichweite befindlichen Netze anzeigt. prinzipiell stelle ich mir das als einfache programmiertechnische Fingerübung vor, aber je mehr ich mich damit beschäftige, desto komplizierter scheint das Ganze zu werden. Gesetzt den Fall, ich möchte eine einfache App schreiben, die nur einen Screen darstellen soll. Darauf soll es einen Updatebutton geben und eine Auflistung der Scanergebnisse. Intuitiv wäre ich jetzt mit android.net.wifi.WifiManager.StartScan() hingegangen und hätte mit GetScanResults() die Ergebnisse geholt. Doch hierfür braucht es anscheinend 1000 weitere Geschichten und ich durchblicke aktuell noch nicht ansatzweise, was wie zusammenhängt. Wie gehe ich da korrekt vor?
     
  2. eagle99, 17.03.2010 #2
    eagle99

    eagle99 Android-Hilfe.de Mitglied

    Beiträge:
    121
    Erhaltene Danke:
    10
    Registriert seit:
    19.04.2009
    Phone:
    HTC Desire HD
    Hi, vielleicht hilft dir das folgende Snippet weiter:
    Code:
    package com.android.wifitester;
    
    import java.util.List;
    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.WifiManager;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.TextView;
    
    public class WifiTester extends Activity {
        TextView mainText;
        WifiManager mainWifi;
        WifiReceiver receiverWifi;
        List<ScanResult> wifiList;
        StringBuilder sb = new StringBuilder();
        
        public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.main);
           mainText = (TextView) findViewById(R.id.mainText);
           mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
           receiverWifi = new WifiReceiver();
           registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
           mainWifi.startScan();
           mainText.setText("\nStarting Scan...\n");
        }
    
        public boolean onCreateOptionsMenu(Menu menu) {
            menu.add(0, 0, 0, "Refresh");
            return super.onCreateOptionsMenu(menu);
        }
    
        public boolean onMenuItemSelected(int featureId, MenuItem item) {
            mainWifi.startScan();
            mainText.setText("Starting Scan");
            return super.onMenuItemSelected(featureId, item);
        }
    
        protected void onPause() {
            unregisterReceiver(receiverWifi);
            super.onPause();
        }
    
        protected void onResume() {
            registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
            super.onResume();
        }
        
        class WifiReceiver extends BroadcastReceiver {
            public void onReceive(Context c, Intent intent) {
                sb = new StringBuilder();
                wifiList = mainWifi.getScanResults();
                for(int i = 0; i < wifiList.size(); i++){
                    sb.append(new Integer(i+1).toString() + ".");
                    sb.append((wifiList.get(i)).toString());
                    sb.append("\n");
                }
                mainText.setText(sb);
            }
        }
    }
    
    
    Quelle: Android Snippets: Scan for Wireless Networks

    MfG
    eagle99
     

Diese Seite empfehlen