如何在android中检查慢速网络连接

Posted

技术标签:

【中文标题】如何在android中检查慢速网络连接【英文标题】:how to check slow network connection in android 【发布时间】:2017-11-15 01:14:37 【问题描述】:

如果网络连接慢,我必须显示一个页面

我正在使用此代码检查网络

   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 网络。

【问题讨论】:

在 facebook 上使用 network connection class。 【参考方案1】:

使用以下方法检查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)【参考方案2】:

您可以使用以下代码检查 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 你得到 linkspeed 值,单位为 mbps,请参考 [developer.android.com/reference/android/net/wifi/… 每次链接速度显示72 Mbps 从后台删除应用程序,然后运行应用程序..每次都会更改链接速度值

以上是关于如何在android中检查慢速网络连接的主要内容,如果未能解决你的问题,请参考以下文章

在python中模拟慢速网络的简单方法

通过慢速网络连接在 git 中工作的最快方法是啥?

如何在Android中检查网络内的互联网连接(通过HOTSPOT使用其他设备的互联网)

如何在手机中检查 WIFI 和 3G(数据计划)中的网络连接启用或禁用?

如何在android中检查网络是不是连接到wifi [重复]

android——判断网络状态