android - 在 Android 应用程序中检测互联网连接?

标签 android android-networking

我有以下方法,它将检查设备中的 Internet 连接:

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。

那么如何知道是否存在真正的互联网?

最佳答案

那么什么是“真正的互联网”?在任何给定时间连接到 Internet 上任何可能的主机的能力?有点难测试,不是吗?尝试连接到知名服务器(Google、NASA、您所在国家/地区的顶级提供商主页),如果成功,则您可能拥有“真正的互联网”。

关于android - 在 Android 应用程序中检测互联网连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908826/

相关文章:

服务运行较长时间后,Android URL 将无法连接

android - 从 JSON url 读取数据但 android 不允许它。NetworkOnMainThread 异常和 StrictMode$AndroidBlockGuardPolicy 错误

android - 如何用 mockk 模拟密封类?

java - 从一个 Activity 传递到另一个 Activity 时,int/string 值变为 "0"/null

android - 为什么多播接收在某些 Android 设备上不起作用?

android - Volley 和 AsyncTask

android - 如何检测android中的主机可达性?

php - 如何通过库 net.gotev :uploadservice:2. 1 在 android 中将字符 utf8 发送到服务器

android - FFMPEG:多个图像帧+1个音频=1个视频

android - Appium测试中输入 "Enter key"