Erkennen Sie eine eingeschränkte Netzwerkverbindung in Android?

Es gibt eine Reihe von Fragen zum Erkennen der Netzwerkkonnektivität in Android.https://stackoverflow.com/a/4239019/90236 liefert eine sehr ausführliche Antwort undhttps://stackoverflow.com/a/8548926/90236 Zeigt Methoden zum Identifizieren des Netzwerktyps, mit dem ein Netzwerk verbunden ist.

Wir erkennen die Netzwerkkonnektivität anhand eines Codes, der den folgenden Antworten ähnelt:

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

Auf diese Weise können wir einen Benutzer warnen, wenn er offline ist. Es hilft uns jedoch nicht zu erkennen, ob ein Benutzer über eingeschränkte Konnektivität verfügt. Es gibt Bedingungen mit eingeschränkter Konnektivität, die zu Beschwerden der Benutzer geführt haben. Diese schließen ein:

Benutzer sind mit einem WLAN-Heimnetzwerk verbunden, aber das Kabelmodem oder der Internetdienst sind nicht verfügbar.

Benutzer befinden sich in einem Hotel oder Café und stellen erfolgreich eine Verbindung zu einem WLAN-Netzwerk her. Für das Netzwerk ist es jedoch erforderlich, dass sie sich anmelden oder den Nutzungsbedingungen zustimmen, bevor ihnen der vollständige Netzwerkzugriff gewährt wird.

In beiden Situationen gibt unser Test isNetworkAvailable () true zurück. Das Betriebssystem teilt uns mit, dass wir mit einem Netzwerk verbunden sind. Der Benutzer verfügt jedoch nicht über eine nutzbare Internetverbindung.

Gibt es eine gute Möglichkeit, festzustellen, ob der Benutzer über eine voll funktionsfähige Netzwerkverbindung verfügt?

Ich erwäge, einen einfachen Webdienst aufzurufen, um die Konnektivität zu überprüfen und den Benutzer zu warnen, wenn die App keine gültige Rückmeldung vom Dienst erhält. Ist das übertrieben? oder mussten andere auf ähnliche techniken zurückgreifen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage