【问题标题】:how to check slow network connection in android如何在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 网络。

【问题讨论】:

标签: android networking wifi android-connectivitymanager


【解决方案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
  • 从后台删除应用程序,然后运行应用程序..每次都会更改链接速度值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 2012-04-18
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多