2016-07-01 11 views
1

langsam ich eine Methode implementiert haben für die Internetverbindunganzeigen Warnmeldung, wenn die Geschwindigkeit der Internetverbindung in android

public boolean isInternetWorking() { 
    boolean success = false; 
    try { 
    URL url = new URL("https://google.com"); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    connection.setConnectTimeout(10000); 
    connection.connect(); 
    success = connection.getResponseCode() == 200; 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    return success; 
} 

Der Code funktioniert gut zu überprüfen. Ich bin jedoch auf viele Fälle gestoßen, in denen meine App aufgrund der langsamen Internetverbindung nicht richtig funktioniert.

Gibt es eine Möglichkeit, eine Warnmeldung anzuzeigen, wenn die Internetverbindung langsam ist und das Laden der Daten zu lange dauert?

+0

Download ein Bild von Google jedem Zeit, das Internet zu überprüfen. Berechnen Sie dann die Geschwindigkeit. Wenn sie unter den Schwellenwert sinkt, wird der langsame Internetverbindungsdialog angezeigt. –

+0

Nein, es wird keinen direkten Weg geben, um Internetgeschwindigkeit in Android zu bekommen. Aber Sie können eine Sache tun, Code schreiben, der ein ~ 50kB Bild vom Internet herunterlädt und die genommene Zeit berechnet, auf der Sie feststellen können, ob das Internet langsam ist. – Apurva

+0

@jankigadhiya OP setzt bereits Timeout. Was er will, ist die Internetgeschwindigkeit zu überprüfen, bevor er einen Anruf tätigt. – Apurva

Antwort

0
  • Für WiFi Link Geschwindigkeitskontrolle WifiInfo.getLinkSpeed ​​()
  • für Mobile Data Link können Sie nur überprüfen TelefonyManager.getNetworkType() die aktuelle Mobile Data Link-Typ zu bestimmen. Sie sollten dann ungefähr auf die tatsächliche Geschwindigkeit nach Verbindungsart (d. H. Für GPRS bis 128 kbps, für EDGE bis 236,8 kbps, für 3G bis bis 2 Mbps, für HDSPA bis zu 7,2 Mbps). Berücksichtigen Sie, dass dies nur eine Annäherung ist. Sie könnten mit HDSPA aber Ihr Träger verbinden, der die Höchstgeschwindigkeit auf 2 Mbps begrenzt.

Nun müssen Sie Geschwindigkeit erhalten und den Zustand zu setzen, ob unter 100 kbps, „low-Internetverbindung“

1

Facebook eine Bibliothek zur Überprüfung Verbindung freigegeben hat, Network Connection Class
hier den Auszug:

Die Netzwerkverbindungsklasse ist eine Android-Bibliothek, mit der Sie die Qualität der Internetverbindung des aktuellen Benutzers ermitteln können. Die Verbindung wird in mehrere "Verbindungsklassen" eingeteilt, die die Entwicklung erleichtern. Die Bibliothek führt dies durch, indem sie den vorhandenen Internetverkehr Ihrer App abhört und Sie benachrichtigt, wenn sich die Verbindungsqualität des Benutzers ändert. Entwickler können dann diese Informationen zur Verbindungsklasse verwenden und das Verhalten der Anwendung anpassen (fordern Sie Bilder oder Videos mit niedrigerer Qualität, Drosselklappen-Typ usw. an).

Oder vielleicht können Sie verwenden Speed Test library

die in der Nähe von ähnlichen QA lesen: