我正在尝试获取移动和 WiFi 连接的连接速度。我的 WiFi 工作正常。现在我需要帮助确定移动连接。
这是我到目前为止所拥有的
public void internetConnectionSpeed(Context context) {
Boolean isConnected = false;
getConnectionStatus = "Not Connected!";
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);
if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED || (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED)) {
isConnected = true;
getConnectionStatus = "Connected!";
if (isConnected.equals(true)) {
WifiManager wifiManager = (WifiManager) context.getSystemService(context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int speedMbps = wifiInfo.getLinkSpeed();
getConnectionStatus = Integer.toString(speedMbps) + " Mbps";
//Now I need equivalent code for Mobile Network...
}
}else {
isConnected = false;
getConnectionStatus = "Not Connected!";
}
}
有什么想法吗?谢谢!
最佳答案
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean connected = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED;
if(connected){//todo}
you can't get network speed directly as wifimanager provides. You need to ping in an address and calculate the response time. Follow this: https://github.com/bertrandmartel/speed-test-lib
关于java - 连接移动网络时如何获取连接速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55631893/