2012-08-03 13 views
12

私は、Webサービスのものを含むアプリケーションで作業しています。アンドロイドでインターネット速度を計算する

インターネットの速度が低いときの状態を知る必要があります。 Androidでインターネット速度のレベルを見つける方法

たとえば、携帯電話で2Mbpsの接続を使用していて、50Kbpsになると、トーストまたはアラートを送信してその状況に気づく必要があります。

ありがとうございました。

+0

これはhttp://stackoverflow.com/questions/4429605/how-to-get-link-speed-programmaticallyを助けるかもしれない – Calvin

答えて

11

あなたはWiFiに接続している場合は、WifiManagerを使用して接続の速度を見つけることができます。

WifiInfo wifiInfo = wifiManger.getConnectionInfo(); 

、その後WifiInfoからあなたが現在の速度を得ることができます:あなたがいる場合

int speedMbps = wifiInfo.getLinkSpeed(); 

を3G上では、標準的な方法が見つかっていないと思っています。おそらく、3Gが遅いと自動的に仮定することができます。

+2

どうもありがとうございますが、まだ私はインターネットスピードだけでなく、3G、2Gでwifiで検索しています。 – Dhamodharan

+2

この回答は間違っています。あなたのWiFiアダプタやルータではなく、ISPによって決定されているため、インターネットの速度を得ることはできません。 – mittelmania

+0

ネットワークの速度を提供する 'アンドロイドライブラリ 'はありません。 'wifiInfo.getLinkSpeed'は時々刻々変化し続けるネットワークの最大速度を提供します。 –

6

安定した解決策はありませんが、私はthisインターネット速度を得るために役立つかもしれないアプリケーションのソースコードを発見しました。

+4

リンクは動作しません。だからこそ答えにコードを載せるべきだ。 – pomber

0

これはこれは、無線LANに接続しながら、あなたのインターネットの速度を取得するためのコードである facebook sdk

ConnectionQuality cq = ConnectionClassManager.getInstance().getCurrentBandwidthQuality(); 
+0

それは常にUNKNOWNを返します。 –

+0

ロナクが正しいです。 libはまだ動作していません – YingYang

+0

これは常に不明を返します – surya

0

により、インターネット接続の速度を検出するspecilallyです。

WifiManager wifiManager = (WifiManager) 
    this.getSystemService(Context.WIFI_SERVICE); 

List<ScanResult> wifiList = wifiManager.getScanResults(); 
for (ScanResult scanResult : wifiList) { 
    int level = WifiManager.calculateSignalLevel(scanResult.level, 5); 
    String net=String.valueOf(level); 
    // Toast.makeText(MainActivity.this,net,Toast.LENGTH_LONG).show(); 

} 

// Level of current connection.here rssi is the value of internet speed whose value 
// can be -50,-60 and some others,you can find the speed values easily on internet. 

int rssi = wifiManager.getConnectionInfo().getRssi(); 
int level = WifiManager.calculateSignalLevel(rssi, 5); 
String net=String.valueOf(rssi); 
Toast.makeText(MainActivity.this,net,Toast.LENGTH_LONG).show(); 

// -100 is the minimum speed value of your internet. 
if(rssi < -100) { 
    slowInternet=false; 
} 
関連する問題