我有以下方法来检查我的设备是否具有移动或wifi连接:
public static boolean haveNetworkConnection(ConnectivityManager cm) {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
当手机连接到wifi时,代码似乎可以正常工作(返回true),但是,当手机未连接时,该方法仍然返回true。
我已进行测试,以确保手机完全断开,因为我的其他应用程序都无法连接到Internet。
任何帮助将不胜感激。
最佳答案
我认为您想像这样使用ConnectivityManager
:
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork.isConnectedOrConnecting();
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
在http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html上了解有关它的更多信息