如何检查安卓设备的网络连接速度慢问题

5

如果网络连接缓慢,我需要展示一个页面。

我使用以下代码检查网络:

   ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = cm.getActiveNetworkInfo();
    if (info.getType() == ConnectivityManager.TYPE_WIFI) {
        Toast.makeText(MainActivity.this,"wifi",Toast.LENGTH_LONG).show();


        // do something
    } else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {


        // check NetworkInfo subtype
        if (info.getSubtype() == TelephonyManager.NETWORK_TYPE_GPRS) {
            Toast.makeText(MainActivity.this,"mobile 100kbps",Toast.LENGTH_LONG).show();
            // Bandwidth between 100 kbps and below
        } else if (info.getSubtype() == TelephonyManager.NETWORK_TYPE_EDGE) {
            Toast.makeText(MainActivity.this,"mobile 50-100kbps",Toast.LENGTH_LONG).show();

            // Bandwidth between 50-100 kbps
        } else if (info.getSubtype() == TelephonyManager.NETWORK_TYPE_EVDO_0) {
            Toast.makeText(MainActivity.this,"mobile 400-1000kbps",Toast.LENGTH_LONG).show();

            // Bandwidth between 400-1000 kbps
        } else if (info.getSubtype() == TelephonyManager.NETWORK_TYPE_EVDO_A) {
            Toast.makeText(MainActivity.this,"mobile 600-1400kbps",Toast.LENGTH_LONG).show();

            // Bandwidth between 600-1400 kbps
        }

它正在显示wifi网络 但我需要用于慢wifi网络的代码。 请帮助我,是否有检查慢wifi网络的代码。


1
使用 Facebook 的 network connection class - shinilms
2个回答

2
使用以下方法检查wifi信号强度:
public int getWifiLevel()
{
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    int linkSpeed = wifiManager.getConnectionInfo().getRssi();
    int level = WifiManager.calculateSignalLevel(linkSpeed, 5);
    return level;
}

根据wifi信号强度或链接速度,您可以确定它是否具有低连接或高连接的互联网。


此答案仅适用于Android R(11)。 - isthemartin

1
您可以使用以下代码来检查WiFi速度。
WifiManager wifiManager = Context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo != null) {
    Integer linkSpeed = wifiInfo.getLinkSpeed(); //measured using WifiInfo.LINK_SPEED_UNITS
}

我希望这可以帮助你。


请告诉我如何将链接速度转换为kbps。 - Lassie
您可以在mbps中获取“链接速度”的值,请参考[https://developer.android.com/reference/android/net/wifi/WifiInfo.html#LINK_SPEED_UNITS]。 - Shreeya Chhatrala
每次链接速度显示为72 Mbps。 - Lassie
将应用程序从后台中移除,然后运行该应用程序...这将每次更改链接速度值。 - Shreeya Chhatrala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接