【问题标题】:What is the easiest way to check the network speed in android on both mobile and wifi connection?在移动和wifi连接上检查android网络速度的最简单方法是什么?
【发布时间】:2015-06-12 09:39:22
【问题描述】:

在移动和 wifi 连接上检查 android 网络速度的最简单方法是什么?有没有比从网络下载文件并在此基础上手动进行一些计算更好的解决方案。

【问题讨论】:

  • 我认为您严重低估了这个主题的复杂性以及获得真正有意义的数字的难度。 (剧透:大多数情况下,这些测量的数字没有任何意义)

标签: android performance networking mobile wifi


【解决方案1】:

您可以检查是否可以通过 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 未知或无法检测到。

【讨论】:

  • 非常感谢您的回复,它会有所帮助。但有时,即使有完美的信号强度,连接速度也很慢,这就是我想要解决的问题。搜索仍在继续。无论如何谢谢:)
  • 你可以通过这种方式获得速度:stackoverflow.com/questions/19154992/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 2018-03-09
  • 1970-01-01
  • 2019-06-26
  • 1970-01-01
  • 2013-01-08
相关资源
最近更新 更多