Android 如何在WIFI和移动3G(数据计划)中检查网络连接启用或禁用?
我正在开发一个android应用程序,在我的应用程序中,我想检查网络连接,就像我想检查wifi和3G中的网络连接(就像印度人大多喜欢移动数据计划),如何检查wifi和3G中的网络。naybody知道,请给出一些想法Android 如何在WIFI和移动3G(数据计划)中检查网络连接启用或禁用?,android,Android,我正在开发一个android应用程序,在我的应用程序中,我想检查网络连接,就像我想检查wifi和3G中的网络连接(就像印度人大多喜欢移动数据计划),如何检查wifi和3G中的网络。naybody知道,请给出一些想法 谢谢这是代码片段。如果网络启用,则返回true,否则返回false private boolean netCheckin() { try { ConnectivityManager nInfo = (ConnectivityManager) getSystem
谢谢这是代码片段。如果网络启用,则返回true,否则返回false
private boolean netCheckin() {
try {
ConnectivityManager nInfo = (ConnectivityManager) getSystemService(
Context.CONNECTIVITY_SERVICE);
nInfo.getActiveNetworkInfo().isConnectedOrConnecting();
Log.d(tag, "Net avail:"
+ nInfo.getActiveNetworkInfo().isConnectedOrConnecting());
ConnectivityManager cm = (ConnectivityManager) getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
Log.d(tag, "Network available:true");
return true;
} else {
Log.d(tag, "Network available:false");
return false;
}
} catch (Exception e) {
return false;
}
}
请试试这个
public static boolean isInternetConnected (Context ctx) {
ConnectivityManager connectivityMgr = (ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connectivityMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
// Check if wifi or mobile network is available or not. If any of them is
// available or connected then it will return true, otherwise false;
if (wifi != null) {
if (wifi.isConnected()) {
return true;
}
}
if (mobile != null) {
if (mobile.isConnected()) {
return true;
}
}
return false;
}
请在android清单文件中添加以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
您可以使用以下代码这适用于所有API版本:
ConnectivityManager cm =
(ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
if(isConnected)
{
if(activeNetwork.getType()==ConnectivityManager.TYPE_MOBILE)
return true;
else
return false;
}
else
return false;
我在活动课上用这个
private boolean isConnectedToInternet() {
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
return (networkInfo != null);
}
编辑代码-您有两个值相同的变量!您正在调用
getActiveNetworkInfo()
和isConnectedOrConnecting()
三次!以上代码是正确的。但如果移动设备连接到wifi,但实际上没有用于浏览的数据,该怎么办。如果SimCard在平板电脑等设备中不可用,那么当它连接到wifi时,它将返回true。但当它连接到wifi,但实际上没有用于浏览目的的数据时。在这种情况下,如何找到已连接到wifi但未连接互联网的用户?