[英]Check the Internet Connectivity in Android
我正在尝试通过Web服务向服务器中以及从服务器中推入和推入一些数据。 我必须要做的强制性事情是连接检查。 我现在所做的是,在每个活动从服务器中推送/提取结果集之前,我已经在每个活动中编写了连接检查代码。 我知道这不是我应该编码的最佳方法。 相反,当WIFI / 3G变低/掉线时,此连接检查应在屏幕后面运行诸如background的操作,并警告用户。
最好的方法是什么?
请让我知道您的想法。
谢谢。
嗨,我这样做的方式也许更好
private boolean checkInternetConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// test for connection
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
return true;
} else {
//no conection
return false;
}
}
您可以注册BroadcastReceiver
来侦听连接更改。 可以在这里找到详细的帖子。
public static boolean isInternetAvailable(Context context){
ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(wifi.isConnected() || mobile.isConnected()){
// Check for web site
try{
// Create a URL for the desired page
URL url = new URL("http://www.google.com");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
in.close();
return true;
} catch (Exception e) {
return false;
}
}
return false;
}
该方法还检查在这种情况下www.google.com是否可用的某个网站。 这可能很有用,因为设备可能已连接到无法访问Internet的WLAN路由器。 在这种情况下,即使没有可用的互联网, wifi.isConnected()
也将返回true
。
用于检查android中的互联网连接。
public static boolean isOnline(Activity act)
{
ConnectivityManager cm = (ConnectivityManager)act.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting())
{
return true;
}
return false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.