Holen Sie sich die aktuelle Geschwindigkeit des internet (mobile & Wifi) mit Android

Habe ich eine app, arbeiten, offline-und online-Modus. Die Anwendung muss die Anforderungen an den app-server auf der Basis der internet-Geschwindigkeit von der aktuellen Netzwerkverbindung (Wifi oder Daten).

Wenn Wifi verbunden ist, kann ich die Wifi-Signalstärke der aktuellen Verbindung mit diesem code.

WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), 5);

ODER

wifiInfo.getLinkSpeed();

Wenn das mobile internet angeschlossen ist, ich war in der Lage, die singal Stärke mit Hilfe der listener-Klasse

@Override
    public void onSignalStrengthsChanged(SignalStrength signalStrength) {
        super.onSignalStrengthsChanged(signalStrength);
        int obj  = signalStrength.getGsmSignalStrength();
        int dBm = (2 * obj) -113;
 }

Den oben genannten codes wird die Signalstärke, nicht die Geschwindigkeit. So, wie bekomme ich die aktuelle Geschwindigkeit des Netzwerkes?

Normalerweise ist der speed-test-apps finden sich in den Läden oder websites überprüfen Sie die Geschwindigkeit durch die Zusendung oder das herunterladen einer bestimmten Datei oder Ping einem remote-server und dann die Berechnung der Geschwindigkeit mit der verstrichenen Zeit.

Diese upload - /download-oder Ping-Funktion wird nicht unterstützt von der app-server, mit denen ich kommuniziert, ich bin also nicht in der Lage zu verwenden.

So, gibt es irgendeine alternative Möglichkeit zu prüfen, die Geschwindigkeit der aktuellen internet-Verbindung, die getan werden kann, in Echtzeit?

Führt, könnte hilfreich sein.

PS: Dieser link hat den code für die überprüfung der Konnektivität Typ des aktuellen Netzwerks. Aber es gibt Fälle, in denen ich eine LTE-signal mit voller Stärke, aber keine/sehr langsame internet-Verbindung. So, das ist auch nicht eine genaue Lösung für mich.

https://gist.github.com/emil2k/5130324

  • stackoverflow.com/a/4430334/4824159 Kann Ihnen helfen
  • Der Grund, warum Menschen verwenden Sie Ping ist, denn es gibt keinen anderen Weg, um genau zu sein. Einen link kann die Unterstützung bis zu 100 Mbit / s, aber Sie können möglicherweise nur um 2 aufgrund von überlastung. Der einzige Weg, zu wissen, dass ist zu berechnen. Es ist auch nicht hilfreich zu wissen, dass Ihre Verbindung unterstützt zu 100 Mbit / s foo.com wenn Sie treffen wollen bar.com das überlastet ist und nur in der Lage zu unterstützen, 10. Eine andere Methode wird eine Annäherung sein.
  • gefunden ein nützliches medium-Artikel. haben Sie einen Blick android.jlelse.eu/...
  • Haben Sie versuchen Sie dieses Beispiel : github.com/bertrandmartel/speed-test-lib
  • Mehta Nicht. Ich habe nicht versucht, die Probe. Ohne pings auf jedem server, in meinem Verständnis, es gibt keine Möglichkeit zu überprüfen, für die Konnektivität Geschwindigkeit.
InformationsquelleAutor user198530 | 2016-02-22
Schreibe einen Kommentar