如何在android中检查互联网连接?
朋友们 我正在用以下代码检查android中的互联网连接如何在android中检查互联网连接?,android,Android,朋友们 我正在用以下代码检查android中的互联网连接 final ConnectivityManager conn_manager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo network_info = conn_manager.getActiveNetworkInfo();
final ConnectivityManager conn_manager = (ConnectivityManager)
this.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo network_info = conn_manager.getActiveNetworkInfo();
if ( network_info != null && network_info.isConnected() )
{
return true;
}
else
{
return false;
}
但它给了我网络/wifi连接,如果连接了wifi,它给了我真实的信息,如果没有连接互联网,它也给了我真实的信息
任何人都可以告诉我解决方案是什么?您可以使用它来检查是否可以连接到特定的IP地址。这里的
if
子句中的逻辑可能有问题
我用这个:
/**
* Checks if we have a valid Internet Connection on the device.
* @param ctx
* @return True if device has internet
*
* Code from: http://www.androidsnippets.org/snippets/131/
*/
public static boolean haveInternet(Context ctx) {
NetworkInfo info = (NetworkInfo) ((ConnectivityManager) ctx
.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null || !info.isConnected()) {
return false;
}
if (info.isRoaming()) {
// here is the roaming option you can change it if you want to
// disable internet while roaming, just return false
return false;
}
return true;
}
使用这个漂亮的库:
您可以订阅网络状态通知,并在网络状态更改时获得回调。或者,您可以直接查询网络是否可用。使用非常简单。如何扩展此代码以按时间间隔检查Internet连接?按时间间隔进行监视可能不是一个好主意,相反,您应该订阅连接广播并对其执行操作。请看这个相关问题:我试过使用这个,但在2.1设备上,在飞机模式下连接到wifi模式时,它报告错误。