WIFI enable on app start

  • Antworten:14
Gelöschter Account
  • Forum-Beiträge: 460

23.06.2010, 19:47:05 via Website

Ist es möglich, dass man den User bei app start wählen lassen kann, ob er WIFI oder Mobiles Internet aktivieren möchte und das dann aktiviert wird??
Wenn ja wie kann man das realisieren?

Grüße Alexander

Antworten
Michael F.
  • Forum-Beiträge: 914

23.06.2010, 20:15:10 via Website

Ich bin kein Entwickler, aber diese Auswahl würde ich mir auch wünschen. Zu meinen Nokia-Zeiten war das kein Problem. Ich hoffe, das lässt sich auch (irgendwann) für Android realisieren.

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

23.06.2010, 23:04:15 via Website

Hmm, bei APP Start ? Es laufen aber mehrere APPs meist gleichzeitig!

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Gelöschter Account
  • Forum-Beiträge: 460

23.06.2010, 23:15:52 via App

ja ich meine sobald die app gestartet wird soll überprüft werden ob wifi oder mobiles internet an ist und wenn nicht eine auswahl anzeigen,welches eingeschaltet werden soll.
so ähnlich wie bei [app]GPS Status[/app] mit dem GPS

— geändert am 23.06.2010, 23:16:41

Grüße Alexander

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

23.06.2010, 23:25:36 via Website

Das geht relativ einfach ...

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

if(wifi.isWifiEnabled()) {
wifi.setWifiEnabled(false);
Toast.makeText(getBaseContext(), "WiFi turned off",
Toast.LENGTH_LONG).show();
finish();

}
else {
wifi.setWifiEnabled(true);
Toast.makeText(getBaseContext(), "WiFi turned on",
Toast.LENGTH_LONG).show();

finish();

}

Wobei hier nur über Wifi enabled oder nicht geprüft wird. Gleiches kannst Du relativ einfach auch über die Mobile Dataconnection machen. Es gibt entsprechende Methoden dafür in Android.

— geändert am 23.06.2010, 23:27:31

lg Voss

Antworten
Gelöschter Account
  • Forum-Beiträge: 460

23.06.2010, 23:30:20 via App

der enabled ja nur wlan oder?
ich werde es mal testeb

Grüße Alexander

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

24.06.2010, 00:39:09 via Website

Wie lautet denn der Titel Deines Postings ? Das scheint doch Dein Hauptanliegen gewesen zu sein ..

lg Voss

Antworten
Michael F.
  • Forum-Beiträge: 914

24.06.2010, 05:43:36 via Website

Er möchte es, glaube ich, folgendermaßen umsetzen:

Beispiel: Öffnet er den Browser will er hier eine Auswahl (mittels Pop-Up) bekommen: UMTS- oder WLAN Verbindung auswählen. Das gleiche Spiel bei allen anderen Apps, die Internetzugriff erfordern. Wie eben bspw. bei den Nokias.

Antworten
Gelöschter Account
  • Forum-Beiträge: 460

24.06.2010, 16:48:51 via Website

An sich akzeptiert es den code aber es gibt einen FC

1package de.Rocky;
2
3import android.app.*;
4import android.net.wifi.*;
5import android.os.*;
6import android.provider.*;
7import android.view.*;
8import android.webkit.*;
9import android.widget.*;
10import android.content.*;
11
12public class Rocky extends Activity {
13 private static final int AKTUALISIEREN = 0;
14 private static final int MAILSENDEN = 1;
15 private static final int HOME = 2;
16 private static final int FORUM =3;
17 private static final int STATISTIK = 4;
18 private static final int BEENDEN = 5;
19 private static final int WIFI =6;
20 private WebView webview;
21
22 /** Called when the activity is first created. */
23 @Override
24 public void onCreate(Bundle savedInstanceState) {
25 super.onCreate(savedInstanceState);
26
27 //ProgressBar
28 getWindow().requestFeature(Window.FEATURE_PROGRESS);
29
30 webview = new WebView(this);
31 setContentView(webview);
32 webview.getSettings().setJavaScriptEnabled(true);
33
34 final Activity activity = this;
35 webview.setWebChromeClient(new WebChromeClient() {
36 public void onProgressChanged(WebView view, int progress) {
37 activity.setProgress(progress * 100);
38 }
39 });
40
41 webview.setWebViewClient(new WebViewClient() {
42 public void onReceivedError(WebView view, int errorCode,
43String description, String failingUrl) {
44 Toast.makeText(activity,description,
45Toast.LENGTH_SHORT).show();
46 }
47 });
48 //ProgressBar
49
50 webview.loadUrl("URL");
51 }
52
53 //Züruck Button
54 @Override
55 public boolean onKeyDown(int keyCode, KeyEvent event) {
56 if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
57 webview.goBack();
58 return true;
59 }
60 return super.onKeyDown(keyCode, event);
61 } //Zurück Button
62
63 //Menü
64 public boolean onCreateOptionsMenu(Menu menu) {
65 boolean result = super.onCreateOptionsMenu(menu);
66 menu.add(0, AKTUALISIEREN, 0, "Aktualisieren").setIcon(R.drawable.ic_menu_refresh);
67 SubMenu LinksMenu = menu.addSubMenu("Links").setIcon(android.R.drawable.ic_input_get);
68 LinksMenu.add(0, HOME, 0, "Home").setIcon(R.drawable.ic_menu_home);
69 LinksMenu.add(0, FORUM, 0, "Forum");
70 LinksMenu.add(0, STATISTIK, 0, "Statistik");
71 menu.add(0, MAILSENDEN, 0, "Mail senden").setIcon(R.drawable.ic_menu_compose);
72 SubMenu OptionMenu = menu.addSubMenu("Optionen").setIcon(android.R.drawable.ic_menu_manage);
73 OptionMenu.add(0, WIFI, 0, "Wifi");
74 menu.add(0, BEENDEN, 0, "Beenden").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
75 return result;
76 } //Menü
77
78 //Menü Aktionen
79 public boolean onOptionsItemSelected(MenuItem item) {
80 switch (item.getItemId()) {
81 case AKTUALISIEREN:
82 webview.reload();
83 break;
84 case MAILSENDEN:
85 Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
86 String[] recipients = new String[]{"ADRESSE", "",};
87 emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
88 emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "BETREFF");
89 emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "");
90 emailIntent.setType("text/plain");
91 startActivity(Intent.createChooser(emailIntent, "Aktion durchführen mit:"));
92 break;
93 case HOME:
94 webview.loadUrl("URL");
95 break;
96 case FORUM:
97 webview.loadUrl("URL");
98 break;
99 case STATISTIK:
100 webview.loadUrl("URL);
101 break;
102 case WIFI:
103 Intent wifi = new Intent();
104 wifi.setAction(Intent.ACTION_VIEW);
105 startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
106 case BEENDEN:
107 System.exit(0);
108 break;
109 }
110 return false;
111 } //Menü Aktionen
112
113 //Change WIFI
114 WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
115 {
116 if(wifi.isWifiEnabled()) {
117 wifi.setWifiEnabled(false);
118 Toast.makeText(getBaseContext(), "WiFi turned off",
119 Toast.LENGTH_LONG).show();
120 finish();
121 }
122 else {
123 wifi.setWifiEnabled(true);
124 Toast.makeText(getBaseContext(), "WiFi turned on",
125 Toast.LENGTH_LONG).show();
126 finish();
127 }
128 }
129 //Change WIFI
130}

— geändert am 24.06.2010, 16:59:20

Grüße Alexander

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

24.06.2010, 18:22:23 via Website

Relativ klar, dass das so nicht funktionieren kann Alexander.

lg Voss

Antworten
Gelöschter Account
  • Forum-Beiträge: 460

24.06.2010, 18:30:43 via Website

Ich hatte deine Variante Probiert aber da gab es dann den Fehler


WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

Syntax Error on token ";" , { expected after this token

und unten beim

}

gabs:

Syntax Error, insert "}" to complete Class Body

Grüße Alexander

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

24.06.2010, 18:43:06 via Website

Meine Variante funktioniert einwandfrei, Du musst sie nur korrekt implementieren Alexander.

Lies Dir mal die Exception durch die im Logcat angezeigt wird wenn der Fehler auftritt. Da wird Dir explizit gesagt was der Fehler ist.

Ich möchte wetten, dass Du eine "illegal StateException" bekommst in deren Anschluss Dir exakt gesagt wird warum dieser Fehler auftritt.

lg Voss

Antworten
Gelöschter Account
  • Forum-Beiträge: 460

24.06.2010, 18:54:46 via Website

06-24 16:48:37.245: ERROR/AndroidRuntime(222): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{de.Rocky/de.Rocky.Main}: java.lang.IllegalStateException: System services not available to Activities before onCreate()

diesen konnte ich finden...
leider weiss ich jetzt nicht genau, wie ich den behebe

Grüße Alexander

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

24.06.2010, 19:09:20 via Website

Ich empfehle die Lektüre dieser Seite: Application fundamentals

Dort findest Du im Abschnitt "Activity lifecycle" die Antwort auf Deine Frage.

lg Voss

Antworten
Gelöschter Account
  • Forum-Beiträge: 460

24.06.2010, 19:26:22 via Website

also so?

1/** Called when the activity is first created. */
2
3 //Change WIFI
4 WifiManager wifi2 = (WifiManager) getSystemService(Context.WIFI_SERVICE);
5 {
6 if(wifi2.isWifiEnabled()) {
7 wifi2.setWifiEnabled(false);
8 Toast.makeText(getBaseContext(), "WiFi turned off",
9 Toast.LENGTH_LONG).show();
10 finish();
11 }
12
13 else {
14 wifi2.setWifiEnabled(true);
15 Toast.makeText(getBaseContext(), "WiFi turned on",
16 Toast.LENGTH_LONG).show();
17 finish();
18 }
19 }
20 //Change WIFI
21
22 @Override
23 public void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);

Grüße Alexander

Antworten