1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Elmey, 02.10.2011 #1
    Elmey

    Elmey Threadstarter Neuer Benutzer

    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

    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

    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

    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
     
Du betrachtest das Thema "WifiManager.startScan() fliegt mir um die Ohren" im Forum "Android App Entwicklung",