Android 如何检查用户是否启用了网络,而不管该网络是否已连接?

Android 如何检查用户是否启用了网络,而不管该网络是否已连接?,android,Android,我所要做的就是查看网络是否实际启用(设置菜单中的选项是否进行了检查)。我该怎么做呢 具体而言: 我通过WifiManager获得了Wifi。。。 …其他一切(特别是移动数据)都是噩梦 这就是我尝试使用移动数据和WiMax的方式: cm.getNetworkInfo(cm.TYPE_WIMAX).getDetailedState(); cm.getNetworkInfo(cm.TYPE_MOBILE).getDetailedState(); 但当它们被禁用或实际断开连接时,它们返回断开连接 编辑

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

具体而言:

我通过WifiManager获得了Wifi。。。 …其他一切(特别是移动数据)都是噩梦

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

cm.getNetworkInfo(cm.TYPE_WIMAX).getDetailedState();
cm.getNetworkInfo(cm.TYPE_MOBILE).getDetailedState();
但当它们被禁用或实际断开连接时,它们返回断开连接

编辑:我找到了:


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

您是否考虑从
LocationListener
onProviderEnabled()
onProviderDisabled()

NetworkInfo info = connectivityManager.getActiveNetworkInfo();

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

但是,我认为在调用这些方法之前,必须先使用侦听器调用
requestLocationUpdates()

您是否考虑从
LocationListener
实现这两个方法:
onProviderEnabled()
onProviderDisabled()

    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;
        }

但是,我认为在调用这些方法之前,必须先使用侦听器调用
requestLocationUpdates()

我认为问题在于并非所有手机都有此选项。然而,我相信link可以解决你的问题。我认为问题是不是所有的手机都有这个选项。然而,我相信链接可以解决您的问题。
    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;
        }