L
Lonioo
Neues Mitglied
- 0
hi ich bin ein android noob und versuche das w-lan nach access points zu durchsuchen
so sieht meine app aus
my MainActivity:
WiFiReceiver.java:
AndroidManifest:
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 )
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 )
Zuletzt bearbeitet: