我有以下方法,它将检查设备中的互联网连接:
public static boolean checkInternetConnection(Context context) {
ConnectivityManager connectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getActiveNetworkInfo() != null
&& connectivityManager.getActiveNetworkInfo().isAvailable()
&& connectivityManager.getActiveNetworkInfo().isConnected()) {
return true;
} else {
return false;
}
}但过了一段时间后,我发现这个方法只检查网络连通性;就像设备连接到路由器,路由器是开着的,但没有互联网可用,这个方法返回true。
那么如何知道有没有真正的互联网呢?
发布于 2012-12-17 13:39:36
那么什么是“真正的互联网”呢?能够在任何给定时间连接到Internet上的任何可能的主机?有点难测试,不是吗?试着连接一个知名的服务器(Google,NASA,你们国家最大的提供商主页),如果它工作了,你可能就有了“真正的互联网”。
发布于 2012-12-17 13:43:56
我为你看到的唯一方法是尝试连接到像谷歌这样的网站,如果你得到了结果,那么你可以确定它,否则就没有互联网活动。
发布于 2012-12-17 13:39:16
尝试此函数...
public static Boolean checknetwork(Context mContext)
{
NetworkInfo info = ((ConnectivityManager) mContext
.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 true;
}
return true;
}https://stackoverflow.com/questions/13908826
复制相似问题