Android: 如何以编程方式使用信号强度计算移动互联网的速度(上传速度)

Android: How to calculate speed of the mobile internet(Upload speed) using signal strength by programatically

在 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;
        }

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

Facebook 为此发布了一个库:

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

库说明:

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