Sie können nicht nur nach diesen Informationen suchen. Ihre Internetgeschwindigkeit wird von Ihrem ISP bestimmt und kontrolliert, nicht von Ihrer Netzwerkschnittstelle oder Ihrem Router.
Der einzige Weg, wie Sie Ihre (aktuelle) Verbindungsgeschwindigkeit erreichen können, ist das Herunterladen einer Datei von einem nahegelegenen Ort und das Timing, wie lange es dauert, die Datei abzurufen. Zum Beispiel:
static final String FILE_URL = "http://www.example.com/speedtest/file.bin";
static final long FILE_SIZE = 5 * 1024 * 8; // 5MB in Kilobits
long mStart, mEnd;
Context mContext;
URL mUrl = new URL(FILE_URL);
HttpURLConnection mCon = (HttpURLConnection)mUrl.openConnection();
mCon.setChunkedStreamingMode(0);
if(mCon.getResponseCode() == HttpURLConnection.HTTP_OK) {
mStart = new Date().getTime();
InputStream input = mCon.getInputStream();
File f = new File(mContext.getDir("temp", Context.MODE_PRIVATE), "file.bin");
FileOutputStream fo = new FileOutputStream(f);
int read_len = 0;
while((read_len = input.read(buffer)) > 0) {
fo.write(buffer, 0, read_len);
}
fo.close();
mEnd = new Date().getTime();
mCon.disconnect();
return FILE_SIZE/((mEnd - mStart)/1000);
}
Dieser Code, wenn sightly geändert (Sie müssen mContext ein gültiger Kontext sein) und aus dem Inneren eines AsyncTask
oder einem Worker-Thread ausgeführt wird, wird eine Remote-Datei herunterladen und senden Sie die Geschwindigkeit, in der die Datei wurde in Kbps heruntergeladen.
Wenn es asymmetrisch (wie ADSL oder 3G), dann haben Sie unterschiedliche Download-und Upload-Geschwindigkeiten. – jww