【问题标题】:How do I check if a user has enabled a network regardless of whether or not that network is connected?如何检查用户是否启用了网络,无论该网络是否已连接?
【发布时间】:2011-09-27 01:54:34
【问题描述】:

我要做的就是查看网络是否实际启用(是否通过设置菜单中的选项进行检查)。我该怎么做?

具体来说:

我通过 WifiManager 获得了 Wifi... ...而其他一切(尤其是移动数据)都是一场噩梦。

这就是我尝试使用移动数据和 WiMax 的方式:

cm.getNetworkInfo(cm.TYPE_WIMAX).getDetailedState();
cm.getNetworkInfo(cm.TYPE_MOBILE).getDetailedState();

但是当它们被禁用或实际断开连接时,它们会返回 DISCONNECTED。

编辑:我找到了:http://developer.android.com/reference/android/provider/Settings.System.html

再次编辑:这也不是我想要的……不过,我会继续寻找!

【问题讨论】:

  • 我认为问题在于并非所有手机都有此选项。但是,我相信this 链接可以解决您的问题。

标签: android


【解决方案1】:
NetworkInfo info = connectivityManager.getActiveNetworkInfo();

boolean isNetworkEnabled = (info == null ? false : true);

【讨论】:

    【解决方案2】:

    您是否正在考虑从LocationListeneronProviderEnabled()onProviderDisabled() 实现这两种方法?

    不过,我认为requestLocationUpdates() 必须先用监听器调用,然后才能调用这些方法。

    【讨论】:

      【解决方案3】:
          public static boolean checkConnection(Context context) {
                  ConnectivityManager connMgr = (ConnectivityManager) context
                          .getSystemService(Context.CONNECTIVITY_SERVICE);
                  android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                  android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                  if (wifi.isAvailable() && wifi.isConnected()) {
                      status = true;
                  }
                  if (mobile.isAvailable() && mobile.isConnected()) {
                      status = true;
                  } else {
                      status = false;
                  }
      return status;
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-14
        • 2014-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多