java - 连接移动网络时如何获取连接速度?

标签 java android

我正在尝试获取移动和 WiFi 连接的连接速度。我的 WiFi 工作正常。现在我需要帮助确定移动连接。

这是我到目前为止所拥有的

public void internetConnectionSpeed(Context context) {
    Boolean isConnected = false;
    getConnectionStatus = "Not Connected!";

    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
      if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED || (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED)) {
          isConnected = true;
          getConnectionStatus = "Connected!";

          if (isConnected.equals(true)) {
              WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
              WifiInfo wifiInfo = wifiManager.getConnectionInfo();
              int speedMbps = wifiInfo.getLinkSpeed();
              getConnectionStatus = Integer.toString(speedMbps) + " Mbps";

              //Now I need equivalent code for Mobile Network...
          }

      }else {
          isConnected = false;
          getConnectionStatus = "Not Connected!";
      }
}

有什么想法吗?谢谢!

最佳答案

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    boolean   connected = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED;

if(connected){//todo}

you can't get network speed directly as wifimanager provides. You need to ping in an address and calculate the response time. Follow this: https://github.com/bertrandmartel/speed-test-lib

关于java - 连接移动网络时如何获取连接速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55631893/

相关文章:

java - 需要帮助解决连接表问题

java - Tomcat窗口启动后会自动关闭

java - Activity com.example.mediastore.LoginActivity 已泄漏窗口 com.android.internal.policy.impl.PhoneWindow$DecorView

java - 我可以加快压缩速度吗?

java - 在字符串中递归查找字符

java - 无法写入android模拟器中的文件

android - 将 subview 保留在 ConstraintLayout 的布局内

android - 安卓平板的标准分辨率是多少?

java - 如何将 jTextfield 中的数据添加到 jTable 中?我不知道为什么我会失败。请看一下

java - 为 `File not found` 获取 `asset` 错误。怎么会这样?