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