Server Test vom Android

  • Antworten:6
  • OffenNicht stickyNicht beantwortet
  • 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

Diskutiere mit!
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.168

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?
Diskutiere mit!
  • 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?
Diskutiere mit!
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.168

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?
Diskutiere mit!
  • 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?
Diskutiere mit!

Empfohlene Artikel