Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Wifi "startscan()" führt dazu das meine app crasht

Das Thema "Wifi "startscan()" führt dazu das meine app crasht" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 01.09.2011, 17:52   #1 (permalink)
Neuer Benutzer

Registriert seit: 01.09.2011
Beiträge: 12
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Wifi "startscan()" führt dazu das meine app crasht

hi ich bin ein android noob und versuche das w-lan nach access points zu durchsuchen

so sieht meine app aus

my MainActivity:


Code:
package com.wifi;


import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.Toast;

import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Button;
import android.widget.ProgressBar;

 

public class MainActivity extends Activity 
{
    public TextView LaTestText;
    private Button BtScanWiFi;
    private Button BtSelectAccessPoint;
    private ProgressBar ProgressBar1;
    public Spinner WiFiChannels;
    
    WifiManager WiFiManager;
    BroadcastReceiver WiFireceiver;
    WiFiReceiver TextReceiver;
     
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initControls();
        WiFiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        if (WiFireceiver == null)
        	WiFireceiver = new WiFiReceiver(this);
        registerReceiver(WiFireceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    }
       
    @Override
    public void onStop(){
        super.onStop();
        finish();
    }
    
    
    private void initControls()
    {
    	LaTestText = (TextView)findViewById(R.id.LaTestText);
    	BtSelectAccessPoint = (Button)findViewById(R.id.BtSelectAccessPoint);
    	BtScanWiFi = (Button)findViewById(R.id.BtScanWiFi);
    	ProgressBar1 = (ProgressBar)findViewById(R.id.ProgressBar1);
    	WiFiChannels = (Spinner)findViewById(R.id.WiFiChannels);
    	
    	ProgressBar1.setVisibility(ProgressBar.INVISIBLE);
    	
    	BtScanWiFi.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ ScanWiFi (); }});
    	BtSelectAccessPoint.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ SelectWiFi (); }});	
    	WiFiChannels.setOnItemSelectedListener(
    			new OnItemSelectedListener()
    			{
    				public void onItemSelected(AdapterView<?> parent,View View, int pos, long id) 
    				{
    					// something
    				}
    				public void onNothingSelected(AdapterView parent) 
    				{
    					// Do nothing.
    				}
    			}
    	);
    	
    }
    
    

    
    private void ScanWiFi()
    {
    	ConnectivityManager manager = (ConnectivityManager)getSystemService(MainActivity.CONNECTIVITY_SERVICE);
    	
    	Boolean is3G = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
        Boolean isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();

        String ConnectionInfo;
		
        if(is3G)
        {
            ConnectionInfo = "Your current InternetConnectionType is  ''3G'' please set to WiFi !!!";
            Toast.makeText(getApplicationContext(), ConnectionInfo, Toast.LENGTH_LONG).show();
            startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
        }
        else 
        if(isWifi)
        {
        	ConnectionInfo = "Your current InternetConnectionType is  ''WiFi/W-Lan''" ;
              Toast.makeText(getApplicationContext(), "Scanning for AccessPoints ...", Toast.LENGTH_LONG).show();
              WiFiManager.startScan();    
            
        	
        }
        else
        {
        	ConnectionInfo = "Your are currently not connectet to WiFi/W-Lan" ;
            
        Toast.makeText(getApplicationContext(), ConnectionInfo, Toast.LENGTH_LONG).show();
            startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
            
        }
        
        
    }
    
    private void SelectWiFi()
    {
		//
    }

      
    }
WiFiReceiver.java:

Code:
package com.wifi;

import java.util.List;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.ScanResult;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Spinner;


public class WiFiReceiver extends BroadcastReceiver{
	private MainActivity mainactivity;
	public StringBuilder sb;
	public List<ScanResult> APList;
    public WiFiReceiver(MainActivity mainactivity)
    {
    	super();
    	this.mainactivity = mainactivity;
    }  
    @Override
    public void onReceive(Context c, Intent intent) 
    {     
      APList = mainactivity.WiFiManager.getScanResults();
      for(int i = 0; i < APList.size(); i++)
      {
          sb.append(new Integer(i+1).toString() + ".");
          sb.append(( APList.get(i)).toString());
          sb.append("\\n");
      }
      String info=" "+APList.size();
      Log.i("wifiScan", info);    
      mainactivity.LaTestText.setText(info);
      
    
      
      //mainactivity.LaTestText.setText(sb);
    }

    
    
}

AndroidManifest:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.wifi"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="WiFi">
        <activity android:name="MainActivity"
                  android:label="WiFir">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
		<activity android:name="MainListActivity">
		
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="9" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
</manifest>
wenn ich nun die app auf meinem GalaxySII ausführe und auf "scann wifi" drücke bekomme ich nach ca. 2-5 sekunden ein fenster "Sorry! The application stopped unexpected." und meine app schließt sich -.-

wenn ich "startscan()" auskommentire läuft alles wunderbar
was mache ich falsch ?

danke das ich eure zeit in anspruch nehmen darf

(ps: an den coder der seite : mit meinem google chrome (13.0.782.215 m) war bei der registrierung das feld "Benutzername" nicht sichtbar konnte mich also mit chrome nicht hier registrieren erst mit firefox )

Geändert von Lonioo (01.09.2011 um 19:43 Uhr)
Lonioo ist offline   Mit Zitat antworten
Alt 01.09.2011, 21:28   #2 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Wifi "startscan()" führt dazu das meine app crasht

Eclipse - Logcat ist dein freund
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 01.09.2011, 23:25   #3 (permalink)
Neuer Benutzer

Registriert seit: 01.09.2011
Beiträge: 12
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Wifi "startscan()" führt dazu das meine app crasht

im emulator funktioniert wlan nicht also kann ich das verhalten meines programms nicht prüfen was soll ich dann also mit logcat ?
Lonioo ist offline   Mit Zitat antworten
Alt 02.09.2011, 07:00   #4 (permalink)
Android Experte

Registriert seit: 24.01.2011
Beiträge: 637
Abgegebene Danke: 5
Erhielt 572 Danke für 228 Beiträge
Standard

Zitat:
Zitat von Lonioo Beitrag anzeigen
im emulator funktioniert wlan nicht also kann ich das verhalten meines programms nicht prüfen was soll ich dann also mit logcat ?
Du kannst das Programm auch via Eclipse auf deinem Telefon ausführen. Logcat gibt dir dann die komplette Exception. Geht auch ohne Eclipse via 'adb logcat'.

Sent from my MB525 using Tapatalk
maniac103 ist offline   Mit Zitat antworten
Alt 02.09.2011, 11:59   #5 (permalink)
Erfahrener Benutzer

Modell: G1 DevPhone / SGS2 / SGT10.1v

Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
Standard AW: Wifi "startscan()" führt dazu das meine app crasht

In deinem WiFiReceiver wird dir auf jedenfall 'ne Nullpointer um die Ohren fliegen.
Dein "public StringBuilder sb;" wird nirgendwo initialisiert.

Zudem wird das "mainactivity.LaTestText.setText(info);" 'nen Problem werden, da du dich mit der "onReceive" Methode nicht im UI-Thread bewegst. In deinem Fall wäre da die runOnUiThread-Methode angebracht
__________________
Meine App: Die Cocktail App für Android™ - jetzt im Market (PRO)
sixi ist offline   Mit Zitat antworten
Alt 02.09.2011, 12:05   #6 (permalink)
Neuer Benutzer

Registriert seit: 01.09.2011
Beiträge: 12
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Wifi "startscan()" führt dazu das meine app crasht

??-?? ??:??:??.???: INFO/<unknown>(<unknown>): Unable to open log device '/dev/log/main': No such file or directory

ich nutze aber auch die rom hier
Lonioo ist offline   Mit Zitat antworten
Alt 02.09.2011, 12:13   #7 (permalink)
Erfahrener Benutzer

Modell: G1 DevPhone / SGS2 / SGT10.1v

Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
Standard AW: Wifi "startscan()" führt dazu das meine app crasht

Hier:
Zitat:
If you are a developer or want to re-enable logcat for whatever reason, do this:

adb shell
su
mount -o remount,rw /system
echo ANDROIDLOGGER >> /system/etc/tweaks.conf
mount -o remount,ro /system

Reboot and you should have it enabled.

Disclaimer: Use at your own risk!
__________________
Meine App: Die Cocktail App für Android™ - jetzt im Market (PRO)
sixi ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
WIFI Direct "Unsinn oder Das schwarze App-Loch im LG" Katuro LG P970 Optimus Black Forum 1 23.05.2011 08:54
In Market App "HTC" statt "Meine Apps" Harald HTC Desire S Forum 7 14.04.2011 13:27
Problem mit "Mein Profil" / "Meine Daten" Motoblur Kontakte Androidia Motorola Defy Forum 5 23.02.2011 15:59
app für "meine karten" (google maps) fuxi Karten und Navigation 0 23.11.2010 00:26




Du liest gerade: "Wifi "startscan()" führt dazu das meine app crasht" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.