【问题标题】:Android: How to calculate speed of the mobile internet(Upload speed) using signal strength by programaticallyAndroid:如何以编程方式使用信号强度计算移动互联网的速度(上传速度)
【发布时间】:2023-03-31 13:40:01
【问题描述】:

在 Android 中,我可以使用以下代码找到信号强度,

   protected int getSignalStrength(SignalStrength signal) {
            String ssignal = signal.toString();
            String[] parts = ssignal.split(" ");

            int dB = -120; // No Signal Measured when returning -120 dB

            // If LTE 
            if (telephonyManager.getNetworkType() == TelephonyManager.NETWORK_TYPE_LTE){

                int ltesignal = Integer.parseInt(parts[9]);

                // check to see if it get's the right signal in dB, a signal below -2
                if(ltesignal < -2) {
                    dB = ltesignal;
                }
            }
            // Else 3G
            else {

                if (signal.getGsmSignalStrength() != 99) {

                    int strengthInteger = -113 + 2 * signal.getGsmSignalStrength();
                    dB = strengthInteger;   
                }
            }

            return dB;
        }

如何以编程方式使用信号强度计算移动互联网的速度(上传速度/下载速度)?这是我的问题?

【问题讨论】:

  • 信号强度与下载/上传速度不符
  • 如何找到数据上传和下载的速度...你能告诉我吗
  • speedtest.net的源代码,这可能对你有帮助:gregbugaj.com/?attachment_id=70
  • 上传速度和下载速度有区别吗,因为上面的链接说的是下载速度。所以你能正确地给我打电话吗.. 谢谢你的建议
  • 你无法计算速度,你必须测量它。以及如何测量上传速度?通过在某处上传内容并测量需要多长时间。

标签: android telephonymanager connectivity signal-strength


【解决方案1】:

Facebook 为此发布了一个库:

https://github.com/facebook/network-connection-class

库说明:

在应用中监听当前网络流量并对网络质量进行分类。

【讨论】:

  • 我在android studio中导入项目,得到** import javax.annotation.Nonnull; ** 错误...你能告诉我我需要添加的依赖项吗,我尝试编译 'org.jetbrains:annotations:7.0.2' 但没有解决
  • 您可以使用 gradle 添加库,只需将 compile 'com.facebook.network.connectionclass:connectionclass:1.0.1' 添加到您的应用程序 gradle 依赖项。
猜你喜欢
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 2021-11-12
  • 1970-01-01
相关资源
最近更新 更多