检查WiFi和移动数据是否有效

时间:2017-09-07 10:02:49

标签: android wifi mobile-data

在android工作室项目中,我想检查活动的互联网,因为我使用这个类。它的工作但是。问题是它只在连接不可用时才有效。但我希望只有在连接处于活动状态且可行时才返回true。因为应用程序使用webview,如果连接是一周或不活动,那么它显示无法访问错误。它最常发生在WiFi上。请帮忙

public boolean isConnected(Context context) {

  ConnectivityManager cm = (ConnectivityManager) 
  context.getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo netinfo = cm.getActiveNetworkInfo();

  if (netinfo != null && netinfo.isConnectedOrConnecting()) {
  android.net.NetworkInfo wifi = 
  cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
  android.net.NetworkInfo mobile = 
  cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

  if((mobile != null && mobile.isConnectedOrConnecting()) || (wifi != null && 
  wifi.isConnectedOrConnecting()))
  {
    return true;
  }
  else {
    return false;
  }
  } else{
   return false;
  }
}

1 个答案:

答案 0 :(得分:-1)

这就是我在我的工作代码中使用的内容:

public static boolean isOnline(){    
        ConnectivityManager connectivityManager
                = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

请记住在清单中添加网络状态权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

并且,如果您需要在应用程序中使用互联网,请考虑添加以下内容:

<uses-permission android:name="android.permission.INTERNET" />

您还可以参考to this link获取有关网络权限的官方文档 希望这有帮助