Android - 如何检查互联网访问,而不仅仅是 wifi 连接? [复制]

2023-11-26

我尝试使用下面的代码来检查我的手机是否已连接到无线网络,当我想知道我的手机是否已连接到网络时,它运行良好,但它无法提供有关互联网访问的信息......类似于“ Ping”任何网站。 实际上我遵循了很多链接但仍然没有答案,所以如果有人可以提供帮助,我将非常感激。

提前致谢。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Toast t = new Toast(getApplicationContext());

    if (isInternetOn()) {
         // INTERNET IS AVAILABLE, DO STUFF..
         Toast.makeText(ConnectivityTestActivity.this,"Network is Available", Toast.LENGTH_LONG).show();

         }
    else {
         // NO INTERNET AVAILABLE, DO STUFF..
        Toast.makeText(ConnectivityTestActivity.this,"No Network Available", Toast.LENGTH_LONG).show();

        }
}

public final boolean isInternetOn() {


    ConnectivityManager connec =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    // ARE WE CONNECTED TO THE NET
    if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
    connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
    return true;
    } else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  ) {

    return false;
    }
    return false;
    }}

EDIT:

点击下面的链接,它包含 Ping google 服务器的一个很好的答案并获得结果

https://stackoverflow.com/a/16458623/1239911


实际上我使用了相同的功能isInternetOn()但我删除了连接条件。 它必须检查连接状态(是否已连接)以及是否正在尝试连接。这对我不起作用,所以我删除了连接状态检查,然后它就起作用了。

感谢您的所有回复。

public final boolean isInternetOn()
{
  ConnectivityManager connec = (ConnectivityManager)
    getSystemService(Context.CONNECTIVITY_SERVICE);

  // ARE WE CONNECTED TO THE NET
  if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
       connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED )
  {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
    return true;
  }
  else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
    ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  )
  {
    return false;
  }

  return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 如何检查互联网访问,而不仅仅是 wifi 连接? [复制] 的相关文章

随机推荐

  • 由于@font-face,jQuery 计算出了错误的高度

    我对 jQuery 和 font face 有疑问 我需要计算出 a 的高度 div 效果很好 但是字体加载时会有一点延迟 一旦加载 font face 字体实际上就比后备字体大 因此高度比应有的要小 我尝试过使用 Modernizr 但这
  • 如何在 JavaConfig 中定义 http“security = 'none'?

    我想使用 Java Config 在 Spring Boot 中定义类似于此 XML 的内容
  • 水晶报告图像被压扁

    Crystal Reports v11 如果这很重要 中是否有任何方法可以防止图像自行拉伸以适合整个 OLE 对象 我正在从数据库动态加载图像 但不知道它们的长宽比 感谢帮助 我找到了答案here 要使图像正确调整大小 必须按顺序执行以下步
  • Elasticsearch 超时 true 但仍然得到结果

    我将搜索查询的超时设置为 10 毫秒 因此我预计 elasticsearch 搜索查询应在 10 毫秒内超时 在回应中 我确实得到了 timed out true但查询似乎没有超时 它仍然运行几百毫秒 响应示例 took 460 timed
  • 如何为每个请求执行通用代码?

    有没有可能找到类似的功能Page Load 我有 MVC 应用程序 我需要在每个页面加载或重新加载时运行一些代码 或者调用一些控制器 所有类都有一个共享函数 我尝试 Application Start 但这仅在应用程序第一次运行时执行 我搜
  • 线程阻止所有者的垃圾收集

    在我创建的库中 我有一个 DataPort 类 它实现与 NET SerialPort 类类似的功能 它与某些硬件进行通信 并且每当数据通过该硬件传入时就会引发一个事件 为了实现此行为 DataPort 启动一个线程 该线程预计具有与 Da
  • OpenCV 2.4.9 for Python,找不到棋盘(相机标定教程)

    我正在尝试根据以下内容使用 OpenCV 工具校准相机本指南 问题是这个函数findChessboardCorners在我尝试过的图像上找不到任何棋盘 我用了很多 甚至只是简单的棋盘图案 无论如何 什么也没有被发现 这是代码 几乎与上面的链
  • Windows下在adb中运行vi

    偶尔 我会想要编辑一个文件 比如我的 Android 设备上的 system build prop 或 etc hosts 我发现最简单的方法是 c gt adb shell su vi etc hosts 如果我使用 Linux 这工作得
  • 在模型类中使用 javafx.beans 属性

    在模型类中使用 JavaFX beans 属性是否正确 我想知道在模型类中使用属 性以便能够更轻松地将它们与视图组件绑定是否是一个好习惯 我并不担心这些库将来的可用性 因为我的程序将在 JRE8 或更高版本上运行 但在模型类中使用 Java
  • 将多个连续的连字符替换为一个

    这在 JavaScript 中可能吗 我从 Java 中得到了这个 但不能在 Javascript 中使用 s 2 g 还有其他有效的方法吗 是的 您可以在 Javascript 中使用相同的正则表达式replace method s re
  • 如何在 RockMongo 或 mViewer 上的 mongodb 客户端中运行聚合查询

    我刚刚开始使用 mongo db 我使用 rockmongo 客户端和我的 ubuntu 终端作为另一个客户端 我已经使用组聚合实现了查询 如下所示 db archiveImpl group key accountID true phone
  • 如何复制debug.keystore文件?

    我有同样的问题Android Google 地图在我的计算机之外无法运行 并且在解决方案中 看起来确保我团队中的每个人都拥有相同的 keystore 文件将解决问题 但是 keystore 文件是隐藏的 我想它也以某种方式加密 您不能仅使用
  • Tensorboard - 可视化 LSTM 的权重

    我使用多个 LSTM 层来形成深度循环神经网络 我想在训练期间监控每个 LSTM 层的权重 但是 我不知道如何将 LSTM 层权重的摘要附加到 TensorBoard 关于如何做到这一点有什么建议吗 代码如下 cells with tf n
  • Excel有地图或选择功能吗?

    我有一行字符串值 我想做一个vlookup对每个结果进行计算 然后计算结果的平均值 如果这是 C 我会做Select str gt VLookup str dict Average 有没有办法在单个 Excel 函数中做到这一点 我用的是2
  • 确定浏览器是否具有拖放功能?

    我正在实施jQuery 文件上传并试图找出检测客户端是否可以支持拖放的最佳方法 这样我就可以渲染诸如 将文件拖放到此处上传 之类的内容 只有当他们实际上可以做到这一点时 在插件代码中我可以看到一个函数isXHRUploadCapable这似
  • 从 requirejs 映射调用文本插件

    我正在使用 TypeScript Backbone 和 Mustache 编写一个 Web 应用程序 我想使用 Requirejs 进行依赖加载 我还使用 TypeScript 的 Web Essentials Visual Studio
  • 是否可以覆盖“呼叫”功能?

    是否可以在通用级别上重写 调用 函数 以便每次在应用程序中的任何位置调用方法时都会发生一些情况 我尝试覆盖 Object call 但尽管我设法做到了 但它并没有改变我的应用程序的工作方式 顺便说一句 即使它有效 我是否应该每次都显式调用
  • Perl 正则表达式中的单独反向引用后跟数字文字

    我发现这个相关问题 在 perl 中 替换文本中的反向引用后跟数字文字但看起来完全不同 我有一个像这样的正则表达式 s 0 9 xy 1 1 2 g whitespace here 但这个空白出现在替换中 如何在不让 perl 混淆反向引用
  • 图层中的子集参数不再适用于 ggplot2 >= 2.0.0

    我更新到最新版本了ggplot2并在层中打印子集时遇到问题 library ggplot2 library plyr df lt data frame x runif 100 y runif 100 ggplot df aes x y ge
  • Android - 如何检查互联网访问,而不仅仅是 wifi 连接? [复制]

    这个问题在这里已经有答案了 我尝试使用下面的代码来检查我的手机是否已连接到无线网络 当我想知道我的手机是否已连接到网络时 它运行良好 但它无法提供有关互联网访问的信息 类似于 Ping 任何网站 实际上我遵循了很多链接但仍然没有答案 所以如