Как найти скорость передачи данных сети GPRS / 3G в Android? - PullRequest
4 голосов
/ 15 апреля 2011

в моем приложении мне нужно найти скорость подключенной сети (Wi-Fi / GPRS / 3G).Здесь мне нужна помощь, чтобы найти скорость сети GPRS / 3G.Не могли бы вы помочь мне, как решить эту проблему.

Ответы [ 4 ]

1 голос
/ 24 марта 2012

Это также не полный ответ, но для сетей Wifi (не сотовых) вы можете получить скорость соединения с помощью чего-то вроде следующего:

public String getLinkRate() 
{
    WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
    WifiInfo wi = wm.getConnectionInfo();
    return String.format("%d Mbps", wi.getLinkSpeed());
}

Несколько замечаний:

  1. Для этого потребуется разрешение android.permission.ACCESS_WIFI_STATE.
  2. Это всегда будет одна из скоростей, указанных в стандарте 802.11 (см. Таблицу здесь )
  3. Только скорость, по которой трубка и точка доступа согласованы как максимальная скорость.В игру вступает множество факторов, которые влияют на фактическую скорость, которую вы получите, например, при просмотре веб-страниц (например, перегруженность беспроводными сетями и коллизии, скорость восходящей линии связи)
1 голос
/ 04 июня 2012

TrafficStats сделает всю работу. Вы можете получить переданные байты, а затем вычислить скорость.

0 голосов
/ 18 октября 2012

возможно, можно выяснить, что пользователь подключен к сети Wi-Fi, GPRS или G3. Тогда вы сможете выяснить, насколько быстро работает каждая технология. Также вы можете поместить файл (например, 3 МБ) на сервер быстрого подключения. Затем вы можете скачать этот файл и измерить время, сколько времени это займет. Тогда просто посчитайте ... Или Вы можете вычислить его через каждую секунду, пока файл загружается.

Также скорость загрузки может варьироваться в зависимости от различных условий. Понравилась сила сети (будка беспроводная и мобильная). Например, если пользователь подключен к Wi-Fi 54 Мбит, а точка доступа составляет 60 метров от пользователя, то скорость загрузки не будет даже вдвое меньше. Вот пример с вычислениями скорости загрузки Java, как рассчитать Мбит / с во время загрузки цикла

0 голосов
/ 15 апреля 2011

Посмотрите на Zwitscher's NetworkHelper класс

В основном вам нужно получить ConnectivityManager

cManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

и затем запросите это для того, что вы хотите знать

NetworkInfo info = cManager.getActiveNetworkInfo();
int type = info.getType();
int subType = info.getSubtype();

Для получения дополнительной информации, просмотрите класс выше, чтобы увидеть значения type и subType.

...