App Close Wifi Off

N

N3cron

Fortgeschrittenes Mitglied
1
Hallo zusammen.
Bin auch noch nicht solange dabei, und habe ein Problem. Der folgende Code funktioniert soweit. Ganz unten habe ich den BackButton eingefügt, um im Browser Seiten zurück zu gehen bis man an der ersten seite angekommen ist. Drückt man dann nochmals den backbutton, so schliesst sich das app.
Problem.... ich möchte das das Wifi erst beim schliessen die Verbindung kappt und nicht schon beim ersten mal "backbutton" drücken. Kann mir da vielleicht jemand helfen?

HTML:
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
//import android.content.Context;
import android.view.KeyEvent;

import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

    private WebView webView;
    private WifiManager wifi;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        
        // Browser Settings
        webView = (WebView) findViewById(R.id.webView1);
        webView.getSettings().setLoadsImagesAutomatically(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setBuiltInZoomControls(true);
        webView.loadUrl("http://192.168.16.2");
        webView.setWebViewClient(new WebViewClient());

    }

    // public boolean onCreateOptionsMenu(Menu menu) {
    // // Inflate the menu; this adds items to the action bar if it is present.
    // getMenuInflater().inflate(R.menu.main, menu);
    // return true;
    //
    // }

     //Back Key for Page Return
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // Check if the key event was the Back button and if there's history
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) 
            return true;
            return super.onKeyDown(keyCode, event);
    
    }
}
 
Und wo genau ist das Problem?
Oder hast du den Code bisher nur irgendwo her kopiert und weißt nicht genau was er macht?

Du prüfst ja schon ob der backbutton gedrückt wurde und webview zurück gehen kann. (wobei ich nicht weiß ob die webview das nicht schon selbst verarbeitet).

Aber statt nur return true; musst du an der Stelle halt auch was machen.
Sonst passiert auch nix.
 
Selber schreiben (die ganzen Befehle) fällt mir noch etwas schwer. Einiges aber nicht alles habe ich mir kopiert und angepasst. Verstehen tue ich aber den kompletten Code bisher. Was er macht.
Ich weiss das unter dem BackButton noch etwas hinkommt.
Wahrscheinlich sowas wie " wenn Webview schliesst, dann Wifi off ".
Weiss halt nicht wie ich dem backbutton das zuweisen muss.

Im Code arbeitet der BackButton ja im moment als zurück taste um im Browser wieder bis zum anfang zu kommen (zb Google) .
Drücke ich dann nochmals den BackButton, schliesst die app. Erst dann soll mein Wifi abgeschaltet werden.
 
Naja wenn du deinen Code verstanden hast müsstest du ja zumindest wissen wo du den "wifi beenden" befehl aufrufen müsstest.
Erstmal würde ich dir empfehlen if-abfragen IMMER mit Klammern {} zu nutzen, das macht den Code übersichtlicher

Versuchs mal so:
Code:
        //Hier würde ich erst mal nur auf den keyCode achten
        //Denn du willst ja 2 verschiedene Dinge tun beim gleichen Keycode
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            //Hier dann die Abfrage ob deine Webview noch eine Seite nach hinten gehen kann
            if (webView.canGoBack()){
                return true;
            } else {
                //Hier dann Wifi beenden, 
                //wie genau weiß ich gerade nicht müsste ich selber gucken.
            }
        }
        return super.onKeyDown(keyCode, event);
 
Hi. Also, ich muss jetzt erst einmal sagen.
Die Antwort war so hilfreich

Du hast geschrieben
//Hier dann Wifi beenden, //wie genau weiß ich gerade nicht müsste ich selber gucken.
Also soweit war ich auch schon. Und wo das wahrscheinlich hin muss, wusste ich auch bereits. Dachte da kommt mal ne kleine Hilfe/Denkanstoss
wie ich das umsetzen kann.....

Hoffe weiter auf Hilfe
 
Also das bringt eigentlich auch eine kurze Google suche,

wie auch immer:
Code:
WifiManager wifiManager = (WifiManager) 
getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);

außerdem brauchst du noch die Permission

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

Viel Erfolg
 

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
954
Robby1950
R
netfreak
  • netfreak
Antworten
10
Aufrufe
437
netfreak
netfreak
wernho
Antworten
11
Aufrufe
599
wernho
wernho
Zurück
Oben Unten