Wie kann ich den Android-Dienst für einen Ping-Rückruf verwenden? Ich muss eine Webseite auf Knopfdruck öffnen, aber im Hintergrund pinge ich eine andere URL für die Statistiksammlung an.Android-Dienst - Ping-URL
-Code-Schnipsel wird
Dank Chris
Wie kann ich den Android-Dienst für einen Ping-Rückruf verwenden? Ich muss eine Webseite auf Knopfdruck öffnen, aber im Hintergrund pinge ich eine andere URL für die Statistiksammlung an.Android-Dienst - Ping-URL
-Code-Schnipsel wird
Dank Chris
Ich denke, sehr hilfreich sein, wenn Sie eine URL nur pingen möchten, können Sie diesen Code verwenden können:
try {
URL url = new URL("http://"+params[0]);
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("User-Agent", "Android Application:"+Z.APP_VERSION);
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000 * 30); // mTimeout is in seconds
urlc.connect();
if (urlc.getResponseCode() == 200) {
Main.Log("getResponseCode == 200");
return new Boolean(true);
}
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Und, wenn Sie wollen Um das Äquivalent eines Ping zu erhalten, können Sie vor und nach dem Aufruf eine System.currentTimeMillis() setzen und die Differenz berechnen.
Hoffnungen, die für mich in here
gefunden
Code-Schnipsel hilft außer für Android 4 Geräte, bei denen es nicht immer Dies wurde gut funktioniert. Irgendwelche Ideen? – dee
Sie müssen den Anruf von Ihrem Hauptthread verschieben. Android 4 erzwingt keine Netzwerkaufrufe im Hauptthread, um ANR-Probleme zu vermeiden. –
Dadurch wird eine TCP-Verbindung mit einem vollständigen 3-Wege-Handshake hergestellt. Also die Zeit ist nichts wie ein Ping (ICMP-Echo -> ICMP-Antwort) –