| |||||||
Das Thema "Wifi "startscan()" führt dazu das meine app crasht" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 01.09.2011
Beiträge: 12
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| 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()
{
//
}
} 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 "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) |
| | |
| | #2 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
Eclipse - Logcat ist dein freund
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 01.09.2011
Beiträge: 12
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
im emulator funktioniert wlan nicht also kann ich das verhalten meines programms nicht prüfen was soll ich dann also mit logcat ?
|
| | |
| | #4 (permalink) | |
| Android Experte Registriert seit: 24.01.2011
Beiträge: 637
Abgegebene Danke: 5
Erhielt 572 Danke für 228 Beiträge
| Zitat:
Sent from my MB525 using Tapatalk | |
| | |
| | #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
|
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 |
| | |
| | #6 (permalink) |
| Neuer Benutzer Registriert seit: 01.09.2011
Beiträge: 12
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
??-?? ??:??:??.???: INFO/<unknown>(<unknown>): Unable to open log device '/dev/log/main': No such file or directory ich nutze aber auch die rom hier |
| | |
| | #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
|
Hier: Zitat:
| |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| 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 |