Проверьте пропускную способность в Android - PullRequest
12 голосов
/ 22 ноября 2011

У нас есть возможность проверить типы сетевых подключений в Android (будь то 3G, Edge или GPRS).

Мне нужно проверить пропускную способность.Мне нужно инициировать звонок.Для этого мне нужно проверить пропускную способность.Только выше определенной полосы пропускания мне нужно сделать видимой опцию для вызова (для инициирования вызова).

Мне нужно программно найти скорость соединения (скорость соединения для Mobile Data Link, EDGE).

Ответы [ 3 ]

17 голосов
/ 22 ноября 2011

Вы можете загрузить файл известного размера с вашего сервера и рассчитать, сколько времени потребуется для его загрузки. Тогда у вас есть пропускная способность. Просто, но работает:)

Образец, не проверен:

//Download your image
long startTime = System.currentTimeMillis();
HttpGet httpRequest = new HttpGet(new URL(urlString).toURI());
HttpClient httpClient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpClient.execute(httpRequest);
long endTime = System.currentTimeMillis();

HttpEntity entity = response.getEntity();
BufferedHttpEntity bufHttpEntity;
bufHttpEntity = new BufferedHttpEntity(entity);

//You can re-check the size of your file
final long contentLength = bufHttpEntity.getContentLength();

// Log
Log.d(TAG, "[BENCHMARK] Dowload time :"+(endTime-startTime)+" ms");

// Bandwidth : size(KB)/time(s)
float bandwidth = contentLength / ((endTime-startTime) *1000);
7 голосов
/ 22 ноября 2011

Возвращает текущую скорость соединения в LINK_SPEED_UNITS.

но эта работа для WIFI Only

WifiManager wifiManager = Context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo != null) {
    Integer linkSpeed = wifiInfo.getLinkSpeed(); //measured using WifiInfo.LINK_SPEED_UNITS
}
0 голосов
/ 15 марта 2018

Попробуйте класс сетевой библиотеки facebook (размер библиотеки = 16 КБ)

Мы можем получить вручную / также доступен прослушиватель изменений сети.

Код ручной выборки:

ConnectionQuality cq = ConnectionClassManager.getInstance (). GetCurrentBandwidthQuality ();

Ссылка на Github - https://github.com/facebook/network-connection-class

...