【问题标题】:Checking if 3G is connected always returns false (even when the device is connected)检查是否连接了 3G 总是返回 false(即使设备已连接)
【发布时间】:2012-01-16 08:00:31
【问题描述】:

设备是否激活了 3g/data。知道发生了什么吗? 谢谢

我的代码:

public boolean isConnected3G(){
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] networks = cm.getAllNetworkInfo();
    for (NetworkInfo ni : networks) 
        if ("MOBILE".equalsIgnoreCase(ni.getTypeName())){
            Log.d(TAG,""+ni.isConnected());
            if (ni.isConnected())
                return true;
        }
    return false;       
}

【问题讨论】:

  • 你试过这个代码吗?它返回什么?

标签: android 3g


【解决方案1】:

尝试使用 NetworkInfo ni = cm.getActiveNetworkInfo() 而不是 cm.getAllNetworkInfo(); 并查看网络信息

【讨论】:

  • 谢谢,但我无法使用 cm.getActiveNetworkInfo() 定位 MOBILE
  • 当你执行 cm.getActiveNetworkInfo() 时,你接收的网络类型是什么?而不是获取网络类型的名称,为什么不直接通过 ni.getType() 获取类型并将其与 ConnectivityManager 中的常量(即 TYPE_MOBILE、TYPE_MOBILE_HIPRI 等)进行比较?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多