有时,我必须在我的 android 应用程序中检查互联网连接:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
上面的代码只在一个
Network
可用时才有效!但是,我的设备有 wifi
和 3G
,当我同时使用上面两种类型的网络连接时,上面的代码总是返回 false
! (当它返回 google.com
时,我仍然可以使用 false
)!!我错过了什么?谢谢! 最佳答案
试试这个
private boolean haveNetworkConnection()
{
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
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;
}
关于android - 在 Android 中检查 3G 和 Wifi 的互联网连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12687703/