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

WifiManager.startScan() fliegt mir um die Ohren

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Elmey, 02.10.2011.

  1. Elmey, 02.10.2011 #1
    Elmey

    Elmey Threadstarter Neuer Benutzer

    Beiträge:
    20
    Erhaltene Danke:
    0
    Registriert seit:
    02.10.2011
    Hi,

    ich habe eine eigentlich peinlich simple App, welche mir allerdings schon in der dritten Zeile um die Ohren fliegt (Package und Imports habe ich mal weggelassen=:

    Code:
    public class Android2_1TestActivity extends Activity 
    {
       TextView     tv;
       WifiManager  wifi;
       WifiReceiver receiverWifi = new WifiReceiver();
    	
        public void onCreate(Bundle savedInstanceState) 
        {    	
            super.onCreate(savedInstanceState);
            tv = new TextView(this);
            
            wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
            registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
            wifi.startScan(); 
            
            setContentView(tv);
        }
    
        class WifiReceiver extends BroadcastReceiver 
        {
           public void onReceive(Context c, Intent intent) 
           {
              List<ScanResult> configs=wifi.getScanResults();
              for (ScanResult config : configs) 
              {
                 tv.append("\n\n" + config.BSSID+"  "+config.level);
              }
           }
        }
    }
    
    Ich versuche, die umliegend empfangbaren Wifi-Netzwerke zu ermitteln. Wenn ich durch den Code steppe, führt der Aufruf von wifi.startScan() zu einem seltsamen Breakpoint irgend wo in ActivityThread.performLaunchActivity(), weitere Versuche, den Ablauf fortzusetzen resultieren in einer RuntimeException.

    Jetzt staune ich natürlich nicht schlecht, was in dem bisschen Code wohl schon schief gehen kann - hat jemand eine Idee?
     
  2. v Ralle v, 02.10.2011 #2
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Hallo,

    was sagt denn Logcat? Da wirst du schnell deine Antwort finden ;-)

    Ich vermute aber, dass deine View noch null sein wird, da du den Receiver eher registrierst, als die View zu setzen.
     
  3. Elmey, 02.10.2011 #3
    Elmey

    Elmey Threadstarter Neuer Benutzer

    Beiträge:
    20
    Erhaltene Danke:
    0
    Registriert seit:
    02.10.2011
    Eher nicht, da steht nur

    Code:
    [2011-10-02 21:13:05 - Android2_1Test] Starting activity com.vwp.Android2_1TestActivity on device emulator-5554
    [2011-10-02 21:13:07 - Android2_1Test] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.vwp/.Android2_1TestActivity }
    [2011-10-02 21:13:08 - Android2_1Test] Attempting to connect debugger to 'com.vwp' on port 861
    
    Mit der Änderung hier ergibt sich leider auch keine Änderung:

    Code:
    super.onCreate(savedInstanceState);
    tv = new TextView(this);
            
    setContentView(tv);
            
    wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    wifi.startScan(); 
    
    Gleiches Spiel, den Abflug gibt es bei startScan()...
     
  4. v Ralle v, 02.10.2011 #4
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Nein, ich rede nicht von der Konsole, sondern von Logcat :) Klick mal auf Window --> Show View --> Android --> Logcat. Dort siehst du die Konsolenausgabe von deinem Emulator oder Android Gerät und nicht in der normalen Konsole.

    Habe mal bei Google schnell "Eclipse Logcat" eingegeben, das sollte dir helfen Debugging in Android using Eclipse on Android Development
     

Diese Seite empfehlen