在我的应用程序中,我需要找到连接网络的速度(wifi / GPRS / 3G)。在这里,我需要帮助找到GPRS / 3G网络的速度。你能帮我解决一下这个问题。
答案 0 :(得分:1)
这也不是一个完整的答案,但对于Wifi网络(非蜂窝网络),您可以通过以下内容获得链接速率:
public String getLinkRate()
{
WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
WifiInfo wi = wm.getConnectionInfo();
return String.format("%d Mbps", wi.getLinkSpeed());
}
有几点需要注意:
android.permission.ACCESS_WIFI_STATE
权限。答案 1 :(得分:1)
TrafficStats将完成这项工作。您可以传输字节,然后就可以计算速度。
答案 2 :(得分:0)
也许有可能弄明白,该用户已连接到wifi,gprs或g3网络。 然后你就可以弄清楚每种技术的速度有多快。您也可以将文件(例如3MB)放在快速连接服务器上。然后,您可以下载该文件并测量时间,需要多长时间。然后只计算...或者您可以在文件下载后每秒计算一次。
下载速度也可能因各种条件而异。像网络力量(展位无线和移动)。例如,如果用户连接到54mbit wifi并且接入点是60米形式的用户,那么下载速度甚至不会是其中的一半。 以下是下载速度计算java howto calculate Mbit/s during while loop download
的示例答案 3 :(得分:-1)
查看Zwitscher's NetworkHelper class
基本上你需要获得ConnectivityManager
cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
然后查询此内容以了解您想知道的内容
NetworkInfo info = cManager.getActiveNetworkInfo();
int type = info.getType();
int subType = info.getSubtype();
有关详情,请浏览上述课程,了解type
和subType
的含义。