【发布时间】:2015-06-12 09:39:22
【问题描述】:
在移动和 wifi 连接上检查 android 网络速度的最简单方法是什么?有没有比从网络下载文件并在此基础上手动进行一些计算更好的解决方案。
【问题讨论】:
-
我认为您严重低估了这个主题的复杂性以及获得真正有意义的数字的难度。 (剧透:大多数情况下,这些测量的数字没有任何意义)
标签: android performance networking mobile wifi
在移动和 wifi 连接上检查 android 网络速度的最简单方法是什么?有没有比从网络下载文件并在此基础上手动进行一些计算更好的解决方案。
【问题讨论】:
标签: android performance networking mobile wifi
您可以检查是否可以通过 WiFi 连接互联网。 如果 WiFi 不可用,您可以要求用户禁用 WiFi 或更改 WiFi 设置。
另一种方法是手动获取 WiFi 和移动网络的信号强度:
获取 WiFi 的信号强度:
WifiManager wifiManager = (WifiManager) this
.getSystemService(Context.WIFI_SERVICE);
int wifiSpeed = wifiManager.getConnectionInfo().getRssi();
Log.d("SignalStrength", "wifi" + wifiSpeed);
获取手机信号强度:
MyPhoneStateListener MyListener = new MyPhoneStateListener();
TelephonyManager Tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Tel.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
并为信号强度变化做一个监听器:
private class MyPhoneStateListener extends PhoneStateListener {
/*
* Get the Signal strength from the provider, each time there is an
* update
*/
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);
Log.d("SignalStrength", "GSM" + String.valueOf(signalStrength
.getGsmSignalStrength());
}
};
您可以获取更新的信号值并将其放入共享偏好中,然后可以将其与 WiFi 信号值进行比较。
WiFi 信号值范围从 -100 到 0。
0 表示强度好,-100 表示弱。
移动信号强度值是从 (0-31,99)。
0 表示低,31 表示好。
99 未知或无法检测到。
【讨论】: