我用以下命令检查连接
ConnectivityManager connec = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);我有wifi,我的手机状态错误,我该怎么办?
发布于 2012-04-23 20:34:30
PLease使用以下标准方法检查是否已连接互联网.....
public static final boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (mgr != null) {
boolean mobileNetwork = false;
boolean wifiNetwork = false;
NetworkInfo mobileInfo = mgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiInfo = mgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mobileInfo != null)
mobileNetwork = mobileInfo.isConnected();
if (wifiInfo != null)
wifiNetwork = wifiInfo.isConnected();
return (mobileNetwork || wifiNetwork);
}
}
return false;
}发布于 2012-04-23 20:27:33
您是否在清单文件中提供了下面提到的所需权限...
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />发布于 2012-04-23 20:36:21
对于Wifi和Cell data互联网连接,您也可以尝试使用此代码。
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;
}或者您可以使用以下方法
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
// if no network is available networkInfo will be null
// otherwise check if we are connected
if (networkInfo != null && networkInfo.isConnected()) {
return true;
}
return false;
}这需要ACCESS_NETWORK_STATE权限。
https://stackoverflow.com/questions/10280330
复制相似问题