计算android中的Internet速度

时间:2012-08-03 13:06:37

标签: android

我正在使用包含Web服务的应用程序。

因为我需要知道互联网速度低时的状态。如何在Android中找到互联网速度级别?

例如,考虑一下,如果我在手机中使用2Mbps连接,当速度降至50Kbps时,我需要通过发送Toast或Alert来注意这种情况。

感谢。

4 个答案:

答案 0 :(得分:12)

如果您已连接到WiFi,则可以使用WifiManager找到连接速度:

WifiInfo wifiInfo = wifiManger.getConnectionInfo();

然后从WifiInfo获得当前速度:

int speedMbps = wifiInfo.getLinkSpeed();

如果您使用3G,我认为没有标准的查找方式,也许您可​​以自动假设3G速度很慢。

答案 1 :(得分:6)

对此没有稳定的解决方案,但我发现this应用源代码可能会帮助您获得Internet速度。

答案 2 :(得分:0)

这特别是通过检测互联网连接速度 facebook sdk

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

答案 3 :(得分:0)

这是连接到wifi时获取互联网速度的代码。

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