【问题标题】:ConnectivityManager in Android L PreviewAndroid L Preview 中的 ConnectivityManager
【发布时间】:2014-07-14 22:32:31
【问题描述】:

我的应用在启动时会检查网络连接。在 Android 版本 2.3 到 4.4 中,以下方法效果很好(无论是模拟器还是实际设备)。在 Android L Preview Emulator 上,该方法返回 false。

这是我的代码:

// ===============================================================
public static boolean haveNetworkConnection(Context ctx) {

    boolean haveConnectedWifi = false;
    boolean haveConnectedMobile = false;
    boolean haveConnectedEthernet = false;

    ConnectivityManager cm = (ConnectivityManager) ctx
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();

    for (NetworkInfo ni : netInfo) {

        // String con = ni.isConnected() ? "Connected" : "Not Connected";

        if (!haveConnectedWifi) {
            if (ni.getTypeName().equalsIgnoreCase("WIFI"))
                if (ni.isConnected())
                    haveConnectedWifi = true;
        }

        if (!haveConnectedMobile) {
            if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
                if (ni.isConnected())
                    haveConnectedMobile = true;
        }

        if (!haveConnectedEthernet) {
            if (ni.getTypeName().equalsIgnoreCase("ETHERNET"))
                if (ni.isConnected())
                    haveConnectedEthernet = true;
        }

        StringBuilder sb = new StringBuilder();
        sb.append(ni.getTypeName()).append(" ").append(ni);


    }
    return haveConnectedWifi || haveConnectedMobile
            || haveConnectedEthernet;
}

有一些奇怪的StringBuilder 东西,我没有创建这个代码——它在我继承的一个项目中。我不需要改变任何东西,因为它有效。有谁知道ConnectivityManager 的工作方式是否有任何API 更改?我检查了dev site 上的API overview 更改,但没有看到任何相关信息。

【问题讨论】:

  • 这里的sb有什么用?
  • @niteshgoel 用于已被编辑的日志记录。
  • 类型名称没有稳定的 API。首先将其更改为使用 NetworkInfo.getType() 并针对 ConnectivityManager.TYPE_* 常量进行验证。

标签: android android-5.0-lollipop network-connection


【解决方案1】:

L 中的类型名称已更改,例如应检查“蜂窝”而不是“移动”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-09
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多