我有以下方法来检查我的设备是否有移动或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。
我已经过测试,以确保手机完全断开连接,因为我的其他任何应用都无法连接到互联网。
非常感谢任何帮助。
答案 0 :(得分:1)
我想你想像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
了解详情答案 1 :(得分:0)
private static boolean checkInternetConnection(Activity _activity) {
ConnectivityManager conMgr = (ConnectivityManager) _activity.getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected())
return true;
else
return false;
}
如果您有任何可用/已连接的网络,则上述方法返回true