Countdown Wlan App

wer112

Top Contributor
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

Code:
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);

    }


}
 

wer112

Top Contributor

M.L.

Top Contributor
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

Bekanntes Mitglied
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"


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

wer112

Top Contributor
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"


Idee: Lass die Kinder ihre Onlinezeiten in eine Tabelle eintragen und bei Nichteinhaltungen folgen Sanktionen in Form von keiner Onlinezeit am Folgetag...
Das würde nicht gehen, da die Mutter selten Zuhause sind, und die werden nicht freiwillig aufhören...
 

wer112

Top Contributor
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.
 

mihe7

Top Contributor
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.
 

insert2020

Aktives Mitglied
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...
 

sascha-sphw

Top Contributor
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? :p
Wollte ich gerade schreiben, dann habe ich aber das gefunden. :eek: Keine Ahnung ob das wirklich geht!

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. 🤣
 

Ähnliche Java Themen


Oben