ich eine Methode benötigen, um zu überprüfen, ob mein Netzwerk internem conected, und während meiner Forschungen fand ich eine Methode beschreibt unter:überprüfen Sie, ob das Gerät mit Internet verbunden ist, nicht nur mit Netzwerk
public static boolean hasInternetAccess(Context context) {
if (isNetworkAvailable(context)) {
try {
HttpURLConnection urlc = (HttpURLConnection)
(new URL("http://clients3.google.com/generate_204")
.openConnection());
urlc.setRequestProperty("User-Agent", "Android");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 204 &&
urlc.getContentLength() == 0);
} catch (IOException e) {
Log.e(TAG, "Error checking internet connection", e);
}
} else {
Log.d(TAG, "No network available!");
}
return false;
}
... aber meine Programme werden auf China verteilt und Google ist in China blockiert.
Ich habe mir vorgenommen, eine Methode wie diese zuerst meine Lokalisierung zu erstellen, um eine Baidoo-Website - wie Google auf China - zu bekommen, aber dies ist sehr expansive Methode zu überprüfen, ob Gerät in einem Netzwerk verbunden ist und überprüfen, ob als im Internet verbunden.
Senden Sie eine HEAD-Anfrage an eine beliebige Seite und sehen Sie, ob Sie eine Antwort erhalten. Oder versuchen Sie es mit Ping. – tynn
Für China wäre das wahrscheinlich am einfachsten etwas wie 'InetAddress.getByName (" baidu.com "). IsReachable (TIMEOUT_IN_MILLISECONDS);' und prüfen, ob es eine Ausnahme auslöst. – ccpizza