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
库说明:
在应用程序中监听当前网络流量并对网络质量进行分类。
在 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
库说明:
在应用程序中监听当前网络流量并对网络质量进行分类。