我想获得WiFi连接的“速度”。
从NetworkCapabilities
类中,我得到:
Link downstream bandwidth: 1048576 Kbps
Link upstream bandwidth: 1048576 Kbps
但是,使用WiFiInfo
类,我得到了:
Link speed: 200000 Kbps
为什么值不同?
根据我的研究,我得出的结论是,NetworkCapabilities
类实际上并不能测量带宽-它只是返回检测到的技术(WiFi,蜂窝等)的EXPECTED值。我猜想WiFiInfo
的作用相同。我在延长的时间内多次运行该代码,并获得了与上面相同的值。
以下是带有NetworkCapabilities
的代码:
val connectivityManager = context.getSystemService(ConnectivityManager::class.java)
val networkCapabilities: NetworkCapabilities?
get() = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
networkCapabilities?.linkDownstreamBandwidthKbps // 1048576
networkCapabilities?.linkUpstreamBandwidthKbps // 1048576
以下是带有WiFiInfo
的代码:
val wifiManager = context.getSystemService(WifiManager::class.java)
wifiManager.connectionInfo.linkSpeed // returns 200 Mbps