android里怎么判断设备连上网了呢?
有些人的方法可能是:
public static boolean checkEthernet() {
ConnectivityManager conn = (ConnectivityManager) MeshSdkApplication.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conn.getActiveNetwork();
return networkInfo.isConnected();
}
这种方法不能真正的确定网络是连通的,会出现返回true但是网络不通的情况。用下面的方法就能解决这个问题。
public static boolean checkInternet(Context mContext) {
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkCapabilities networkCapabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
if (networkCapabilities != null && networkCapabilities.hasCapability(networkCapabilities.NET_CAPABILITY_VALIDATED)) {
return true;
}
return false;
}