Server Test vom Android

  • Antworten:6
Alexander1992
  • Forum-Beiträge: 13

02.07.2018, 07:43:27 via Website

Hallo liebe Community,

ich habe folgende Frage.
Ist es möglich, wenn der Burton betätigt wird, dass zuerst geprüft wird, ob der Server erreichbar ist?
Wenn er nicht erreichbar sein sollte, muss eine Fehlermeldung ausgegeben werden sonst soll er mit irgendwas weiter machen.

Gruß
Alex

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

02.07.2018, 08:03:29 via Website

Hallo Alexander,
Herzlich wilkommen hier im Forum :)


Du kannst den Server einfach pingen und wenn erfolgreich, weitermachen:
https://stackoverflow.com/questions/3905358/how-to-ping-external-ip-from-java-android

oder einfach Anfrage senden und Exception Handling wenn Timeout.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Alexander1992
Kommentieren
Alexander1992
  • Forum-Beiträge: 13

02.07.2018, 08:31:41 via Website

Hallo Pascal,

danke für die schnelle Antwort. :)

Gruß
Alex

Hilfreich?
Pascal P.
Kommentieren
Alexander1992
  • Forum-Beiträge: 13

05.07.2018, 08:43:09 via Website

Hi Pascal,

ich habe das mit dem Code jetzt ausprobiert, aber leider stürtzt die App jetzt ab.
Ich fügen meinen Code mit ein, in der Hoffnung, dass du mir helfen kannst.

btn_login.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            email = login_input_email.getText().toString().toLowerCase().trim();
            password = login_input_password.getText().toString().trim();

            InetAddress inet;
            inet = null;

            try {
                inet = InetAddress.getByName("Domain_von_Google");
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }

            try {
                if (inet.isReachable(5000)) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
                    builder.setMessage("Der Server ist online.").setNegativeButton("Schließen", null).create().show();
                } else {
                    AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
                    builder.setMessage("Der Server ist offline.").setNegativeButton("Schließen", null).create().show();
                }
            } catch (IOException e2) {
                e2.printStackTrace();
            } catch (NetworkOnMainThreadException e4) {
                AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
                builder.setMessage("Der Server ist offline.").setNegativeButton("Schließen", null).create().show();
            }

        }

Als Error wird "android.os.NetworkOnMainThreadException" ausgegeben.

Gruß,
Alexander

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

05.07.2018, 08:57:36 via App

Netzwerk Zugriff etc. muss in Android immer Async passieren,
d.h. Thread oder AsyncTask mit Callback

Und die Behandlung von NetwaokOnMain Exception ist falsch, der isr dann nicht sicher odfline, der Code wird nur nicht async ausgeführt.

— geändert am 05.07.2018, 08:58:57

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Alexander1992
  • Forum-Beiträge: 13

05.07.2018, 09:00:11 via Website

Hi Pascal,

danke für den Tipp.
Hast du für mich ein gutes Tutorial ?

Gruß,
Alex

Hilfreich?
Kommentieren