我正在使用一个包含Web服务内容的应用程序。
在其中,当互联网速度较慢时,我需要知道状态。如何在Android中找到互联网速度水平?
例如,假设我在手机上使用2Mbps连接,当连接速度变慢到50Kbps时,我需要通过制作Toast或Alert来注意到这种情况。
谢谢。
我正在使用一个包含Web服务内容的应用程序。
在其中,当互联网速度较慢时,我需要知道状态。如何在Android中找到互联网速度水平?
例如,假设我在手机上使用2Mbps连接,当连接速度变慢到50Kbps时,我需要通过制作Toast或Alert来注意到这种情况。
谢谢。
WifiManager
。WifiInfo wifiInfo = wifiManger.getConnectionInfo();
然后你可以从WifiInfo
中获取当前速度:
int speedMbps = wifiInfo.getLinkSpeed();
如果你在使用3G网络,我认为没有标准的方法可以找出这一点,也许你可以自动地假设3G是慢速的。
android库
可以提供网络速度。 wifiInfo.getLinkSpeed
只提供网络的最大速度,而且这个速度会一直变化。 - the_unknown_spirit50kbps - 150 kbps
之间,则链接到link1;如果在150kbps - 500kbps
之间,则链接到link2;如果大于500kbps
,则链接到link3。那么如何实现这一点呢? - Bhavin Patel这是专门用于检测互联网连接速度的Facebook SDK。
ConnectionQuality cq = ConnectionClassManager.getInstance().getCurrentBandwidthQuality();
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;
}
50kbps - 150 kbps
之间,链接1;在150kbps - 500kbps
之间,链接2;而在>500kbps
时,链接3。那么如何实现这个功能呢? - Bhavin Patel