2014-12-18 20 views
6
Ben kbps veya mbps Ağ Bağlantısı Bant Genişliği almak istiyorum

belirleyin. Cihaz WiFi bağlıysa o zaman gerekir ağ bant genişliğini (hız) olarak mobil veri döndürür.Ağ Bağlantısı Bant Genişliği (hız) wifi ve mobil veri

, wifi yeterlilik oranını döndürür, ancak tam veri aktarım hızı istiyorum.

public String getLinkRate() 
{ 
    WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
    WifiInfo wi = wm.getConnectionInfo(); 
    return String.format("%d Mbps", wi.getLinkSpeed()); 
} 

cevap

4

Sadece bu bilgi için sorgulayamıyor. İnternet hızınız belirlenen değil, şebeke arabirimi veya yönlendirici tarafından, ISS tarafından kontrol edilir.

Dolayısıyla, (geçerli) bağlantı hızınızı alabilmenin tek yolu, bir dosyayı yeterince yakın bir yerden indirerek ve dosyayı almak için ne kadar zaman harcadığınızı belirlemektir. Örneğin: göze hitap eden modifiye zaman

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); 
} 

Bu kod, (eğer mContext geçerli bir bağlam olması gerekir) ve AsyncTask veya bir iş parçacığı içinden yürütülen, hız uzak bir dosyayı indirmek ve dönecektir hangi dosya içinde Kbps içinde indirildi.

+0

Eğer asimetrikse (ADSL veya 3G gibi), farklı indirme ve yükleme hızlarına sahip olacaksınız. – jww