我使用android设备
当应用程序启动时,检查当前的网络状态。
所以我试试这个。
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERIVCE);
NetworkInfo ethernet = manager.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi.isConnected()) {
Log.d(TAG, "WIFI isConnected");
} else if (ethernet.isConnected()) {
Log.d(TAG, "Ethernet isConnected");
} else if (wifi.isAvaiable()) {
Log.d(TAG, "Wifi not connect, but wifi isAvailable");
} else {
Log.d(TAG, "not available network");
}此源检查Wi和以太网网络状态。
但当无法建立网络时。不是检查。
我的设备如果使用wifi,连接我的设备上的无线局域网。
当我的设备上断开无线局域网时。我的消息来源是wifi.isAvailable()
最后,
wifi.isAvailable(),但当断开无线局域网和Wifi关闭时,检查wifi.isAvailable()如何区分这种情况。谢谢。
发布于 2017-04-27 06:36:40
您应该使用getActiveNetworkInfo()检查当前活动的默认数据网络的连接性--不需要检查特定的数据网络;无论是以太网还是Wi。
public static boolean NetAvailable(final Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
final boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
return isConnected;
}发布于 2017-04-27 06:46:57
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}发布于 2017-04-27 06:58:39
要了解工作的internet状态,请使用以下代码片段
public static boolean isInternetAccess() {
try {
HttpURLConnection urlc = (HttpURLConnection)
(new URL("http://www.google.com")
.openConnection());
urlc.setRequestProperty("User-Agent", "Android");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1500);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
Log.e(TAG, "Error checking internet connection", e);
}
return false;}
如果此代码返回失败的结果,这意味着网络不可用,并调用您的代码获取可用网络。
https://stackoverflow.com/questions/43650116
复制相似问题