【问题标题】:Show alert message if the internet connection speed is slow in android如果 android 中的互联网连接速度很慢,则显示警报消息
【发布时间】:2016-07-01 05:05:43
【问题描述】:

我已经实现了一种检查互联网连接的方法

public boolean isInternetWorking() {
  boolean success = false;
  try {
    URL url = new URL("https://google.com");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setConnectTimeout(10000);
    connection.connect();
    success = connection.getResponseCode() == 200;
  } catch (IOException e) {
    e.printStackTrace();
  }
  return success;
}

代码运行良好。但是,我遇到了很多情况,由于互联网连接速度慢,我的应用程序无法正常工作。

有什么方法可以在互联网连接速度慢且数据需要很长时间加载时显示警报消息?

【问题讨论】:

  • 每次都从google下载一张图片上网查看。然后计算速度。然后,如果它低于您的阈值,那么您将显示缓慢的互联网连接对话框。
  • 不,不会有任何直接的方法可以在 android 中获得互联网速度。但是你可以做一件事,编写代码从互联网上下载一张约 50kB 的图像并计算所花费的时间,据此你可以确定互联网是否很慢。
  • @jankigadhiya OP 已经设置超时。他想要的是在调用 api 之前检查网速。
  • connection.setConnectTimeout(10000);删除这一行,它就可以工作了
  • 你可以试试这个link

标签: android internet-connection


【解决方案1】:

Facebook 发布了一个用于检查连接的库,Network Connection Class
摘录如下:

Network Connection Class 是一个 Android 库,可让您了解当前用户的互联网连接质量。连接被分为几个“连接类”,使其易于开发。图书馆通过侦听您的应用程序完成的现有互联网流量并在用户的连接质量发生变化时通知您来做到这一点。然后,开发人员可以使用此连接类信息并调整应用程序的行为(请求质量较低的图像或视频、限制提前输入等)。

或者你可以使用Speed Test library

阅读类似的 QA:

【讨论】:

    【解决方案2】:
    • 对于 WiFi 链接速度检查 WifiInfo.getLinkSpeed()
    • 对于移动数据链路,您只能检查 TelefonyManager.getNetworkType() 确定当前移动数据 链接类型。然后,您应该按链接类型接近实际速度 (即 GPRS 最高 128 kbps,EDGE 最高 236.8 kpbs,3G 最高 最高 2 Mbps,对于 HDSPA 最高 7.2 Mbps)。考虑到 这只是一个近似值。您可能正在使用 HDSPA 进行连接,但是 您的运营商将最高速度限制为 2 Mbps。

    现在,您必须获得速度并设置条件是否低于 100kbps,“网络连接不足”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多