# Countdown Wlan App



## wer112 (12. Jul 2020)

Für eine Familie, soll ich eine App für die Kinder programmieren. Die Kinder bekommen 2 Stunden Internet täglich und sie können dies selber einteilen. Deswegen habe ich an ein Countdown gedacht. In der App sind zwei Variablen(Netzwerkname und Passwort) gespeichert. Wenn man auf Start drückt, dann würd überprüft, ob i > 1, dann wird das Netzwerk gesucht und sich mit dem Passwort eingeloggt. Drückt man auf Stop, dann wird das Netzwerk getrennt. Darum habe ich ein Video angeschaut, mit Countdown, wo es im Video funktioniert hatte und habe es genauso gemacht, leider funktioniert es nicht. Im Internet steht nicht drinnen, wie ich mit einem Wlan über eine App einloggen und trennen kann. Es wäre schönn, wenn ich Hilfe dafür bekommen, da die Familie keinen Programmierer leisten kann und die Kinder sollen lernen mit dem Internet umzugehen. Und der Countdown muss jeden Tag automatisch wieder auf 2 Stunden gesetzt werden. Ich werde das bestimmt den rest der Zeit als ShaPer speichern.

Ich programmiere auf Android Studio und habe ein Win10


```
package com.example.internet;

import androidx.appcompat.app.AppCompatActivity;

import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class internet extends AppCompatActivity {

    private TextView countdownText;
    private Button countdownButton;

    private CountDownTimer countDownTimer;
    private long timeLeftInMilliseconds = 7200000; //2 Stunden
    private boolean timerRunning;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_internet);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);



        countdownText = findViewById(R.id.countdowntext);
        countdownButton = findViewById(R.id.button3);

        countdownButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {

                startStop();

            }

        });
        updateTimer();
    }


    public void startStop(){


        if (timerRunning){

            stopTimer();

        }else{

            startTimer();
        }

    }



    public void startTimer(){

        countDownTimer = new CountDownTimer(timeLeftInMilliseconds, 1000) {
            @Override
            public void onTick(long l) {

                timeLeftInMilliseconds = 1;
                updateTimer();
            }

            @Override
            public void onFinish() {

            }
        }.start();

        countdownButton.setText("Pause");
        timerRunning = true;
    }


    public void stopTimer(){

        countDownTimer.cancel();
        countdownButton.setText("Start");
        timerRunning = false;
    }

    public void updateTimer(){
        int hours = (int) timeLeftInMilliseconds / 3600000;
        int minutes = (int) timeLeftInMilliseconds | 3600000 / 60000;
        int seconds = (int) timeLeftInMilliseconds | 60000 / 1000;

        String timeLeftText;

        timeLeftText = "" + hours;
        timeLeftText += ":";
        timeLeftText += "" + minutes;
        timeLeftText += ":";
        timeLeftText += "" + seconds;

        if(seconds < 10)  timeLeftText  += "0";
        timeLeftText += seconds;

        countdownText.setText(timeLeftText);

    }


}
```


----------



## sascha-sphw (12. Jul 2020)

Ich kann leider bei  Android nicht helfen, aber ich mache das einfach über Parental Control meiner Fritz Box. Hast Du mal überprüft ob deren Router das nicht auch kann?






						Restricting internet use with parental controls | FRITZ!Box 7530
					

You want to block internet access for individual devices or set up time budgets for access profiles? ✓ You can do that with the FRITZ!Box parental controls.




					en.avm.de


----------



## M.L. (12. Jul 2020)

Man kann auch auf vorgefertigte Lösungen zurückgreifen (wobei zu kontrollieren ist ob diese auf dem Zielgerät funktionieren), Suchmaschine @ android app parental control time limit. Z.B.: https://www.howtogeek.com/443322/how-to-set-app-time-limits-and-block-apps-on-android/


----------



## wer112 (12. Jul 2020)

M.L. hat gesagt.:


> Man kann auch auf vorgefertigte Lösungen zurückgreifen (wobei zu kontrollieren ist ob diese auf dem Zielgerät funktionieren), Suchmaschine @ android app parental control time limit. Z.B.: https://www.howtogeek.com/443322/how-to-set-app-time-limits-and-block-apps-on-android/


Dort werden nur die Apps beschränkt, aber nicht das Internet. Man kann die Sperren, aber nicht das Internet. Deswegen würde ich es selber machen.


----------



## M.L. (12. Jul 2020)

wer112 hat gesagt.:


> Deswegen würde ich es selber machen.


Wo findet man das oben angesprochene Video ?  Und die Zielgeräte laufen unter welchen Android-Versionen (Hintergrund: die Android-API verändert sich gerne. Was mit einem "alten" Android funktionierte, kann unter einem neuen teilweise/total versagen (und umgekehrt) ) ?   Übrigens hat auch Android Studio eine Angabe zur Minimal Android Version, sog. API-Level.


----------



## handshake45 (12. Jul 2020)

Ich befürchte.... das wird mit nicht gerooteden Geräten nicht möglich sein...

Suche nach
"android how to programmatically turn on airplane mode"
"android how to programmatically lock airplane mode"









						How to programmatically enable and disable Flight mode on Android 4.2?
					

Is there a way to disable or enable Flight Mode on Android 4.2?  I use this code that works only for previous Android versions:  android.provider.Settings.System.putInt(     c.getContentResolver(),...




					stackoverflow.com
				




Idee: Lass die Kinder ihre Onlinezeiten in eine Tabelle eintragen und bei Nichteinhaltungen folgen Sanktionen in Form von keiner Onlinezeit am Folgetag...


----------



## wer112 (12. Jul 2020)

handshake45 hat gesagt.:


> Ich befürchte.... das wird mit nicht gerooteden Geräten nicht möglich sein...
> 
> Suche nach
> "android how to programmatically turn on airplane mode"
> ...


Das würde nicht gehen, da die Mutter selten Zuhause sind, und die werden  nicht freiwillig aufhören...


----------



## wer112 (12. Jul 2020)

M.L. hat gesagt.:


> Wo findet man das oben angesprochene Video ?  Und die Zielgeräte laufen unter welchen Android-Versionen (Hintergrund: die Android-API verändert sich gerne. Was mit einem "alten" Android funktionierte, kann unter einem neuen teilweise/total versagen (und umgekehrt) ) ?   Übrigens hat auch Android Studio eine Angabe zur Minimal Android Version, sog. API-Level.


Auf YouTube, einfach Countdown Tutorial. Ich habe es für Android 4.0 gemacht, da ich sicherstellen möchte, das jeder das benutzen kann. Leider geht der Countdown nicht richtig und im Internet steht nicht drinnen, wie ich das mit dem WLAN hinbekomme.


----------



## handshake45 (12. Jul 2020)

Naja dann sehe ich für dein Vorhaben kein Gelingen



wer112 hat gesagt.:


> und im Internet steht nicht drinnen, wie ich das mit dem WLAN hinbekomme





handshake45 hat gesagt.:


> das wird mit nicht gerooteden Geräten nicht möglich sein...


----------



## mihe7 (12. Jul 2020)

Hab das mal eben unter Android 8.0 ausprobiert: WifiManager#setEnabled und gut ist's. Außerdem sollte man einen BroadcastReceiver implementieren, der verhindert, dass das Wifi wieder aktiviert wird.


----------



## sascha-sphw (13. Jul 2020)

Was spricht denn gegen die Router Lösung https://www.java-forum.org/thema/countdown-wlan-app.189032/#post-1227933.

Hier kann man genau festlegen wann welches Gerät wie lange ins Internet darf. Ich bin mir sicher das nicht nur Fritz Box so ein Feature anbietet. Warum der Aufwand eine eigene App zu programmieren? 🤷‍♂️


----------



## mihe7 (13. Jul 2020)

sascha-sphw hat gesagt.:


> Was spricht denn gegen die Router Lösung


Die wäre zu einfach


----------



## handshake45 (13. Jul 2020)

mihe7 hat gesagt.:


> Die wäre zu einfach


Vor allem müsste man die App ja jedes Mal gewissenhaft starten und stoppen...


----------



## mihe7 (13. Jul 2020)

handshake45 hat gesagt.:


> Vor allem müsste man die App ja jedes Mal gewissenhaft starten und stoppen...


Nicht unbedingt.


----------



## wer112 (17. Jul 2020)

mihe7 hat gesagt.:


> Nicht unbedingt.


Richtig, da wenn der Countdown auf Null ist, gibt es ja kein Internet mehr


----------



## insert2020 (17. Jul 2020)

mihe7 hat gesagt.:


> Nicht unbedingt.


Sondern?


----------



## mihe7 (18. Jul 2020)

Der BroadcastReceiver bekommt z. B. Änderungen am WLAN auch dann mit, wenn die App nicht gestartet wurde...


----------



## insert2020 (18. Jul 2020)

Dh., die Onlinezeit würde durch die Wlanaktivität bestimmt -> das könnte echt funktionieren... Es sollte aber die Möglichkeit geben die 2 Stunden nicht am Stück nutzen zu müssen...


----------



## Meniskusschaden (18. Jul 2020)

insert2020 hat gesagt.:


> die Onlinezeit würde durch die Wlanaktivität bestimmt


Allerdings bedeutet das nicht zwangsläufig, dass man das Internet nutzt. Vielleicht macht man irgend etwas anderes im LAN.


----------



## mihe7 (18. Jul 2020)

Meniskusschaden hat gesagt.:


> Allerdings bedeutet das nicht zwangsläufig, dass man das Internet nutzt. Vielleicht macht man irgend etwas anderes im LAN.


Diese Hacker-Kinder sollen nichts im LAN machen


----------



## sascha-sphw (18. Jul 2020)

Meniskusschaden hat gesagt.:


> Allerdings bedeutet das nicht zwangsläufig, dass man das Internet nutzt. Vielleicht macht man irgend etwas anderes im LAN.


Mit dem Telefon ins LAN, wie machst Du das? Hast Du ein USB zu Netzwerk Kabel? 
Wollte ich gerade schreiben, dann habe ich aber das gefunden.  Keine Ahnung ob das wirklich geht!


			https://www.amazon.de/Mobi-Lock-USB-Ethernet-Netzwerkadapter-Ethernet-USB-wei%C3%9F-USB-LAN-Ethernet-Network-Adapter-Cable/dp/B00NLL10P4/ref=asc_df_B00NLL10P4/?tag=googshopde-21&linkCode=df0&hvadid=309951437972&hvpos=&hvnetw=g&hvrand=15908075837934713187&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9042432&hvtargid=pla-544000567577&psc=1&language=de_DE&th=1&psc=1&tag=&ref=&adgrpid=62023944376&hvpone=&hvptwo=&hvadid=309951437972&hvpos=&hvnetw=g&hvrand=15908075837934713187&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9042432&hvtargid=pla-544000567577
		


Aber hey, zurück zum Thema. Kann mir wirklich jemand erklären warum eine existierende Lösung die genau das leistet, komplett ignoriert wird? Ich glaube aber es handelt sich um das "not Invented here" Syndrom! 🤷‍♂️

Aber macht nur weiter und dann kommen die Kids wirklich mit dem Adapter um die Ecke. 🤣


----------

