Android:如何以编程方式确定 android 中的网络速度

新手上路,请多包涵

网络连接时如何向用户显示网络连接速度慢注意:不是网络类型(2G,3G,4G,WIFI)

原文由 Mind_Control 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 989
2 个回答

确定您的网络速度 -(网速慢)

使用 NetworkInfo 类、ConnectivityManager 和 TelephonyManager 来确定您的网络类型。

从 Internet 下载任何文件并计算花费的时间与文件中的字节数。 (确定速度检查的唯一可能方法)

我已经为我的项目尝试了以下逻辑,您也已经对此进行了调查, 希望它对您有所帮助。

 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    //should check null because in airplane mode it will be null
    NetworkCapabilities nc = cm.getNetworkCapabilities(cm.getActiveNetwork());
    int downSpeed = nc.getLinkDownstreamBandwidthKbps();
    int upSpeed = nc.getLinkUpstreamBandwidthKbps();

原文由 Rajiv Reddy 发布,翻译遵循 CC BY-SA 4.0 许可协议

检查 移动网络 的互联网速度以使用此代码

ConnectivityManager connectivityManager = (ConnectivityManager)this.getSystemService(CONNECTIVITY_SERVICE);
NetworkCapabilities nc = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
var downSpeed = nc.getLinkDownstreamBandwidthKbps();
var upSpeed = nc.getLinkUpstreamBandwidthKbps();

如果检查 wifi 网络 的互联网速度以使用此代码

public int getWifiLevel()
{
    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    int linkSpeed = wifiManager.getConnectionInfo().getRssi();
    int level = WifiManager.calculateSignalLevel(linkSpeed, 5);
    return level;
}

更多详细信息请参阅此链接

https://android.jlelse.eu/designing-android-apps-to-handle-slow-network-speed-dedc04119aac

我希望这可以帮助你!

谢谢你。

原文由 Hardik Talaviya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题