Проверьте уровень полосы пропускания в Android

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

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

Мне нужно найти скорость соединения программно (скорость соединения для мобильной передачи данных, EDGE) … Пожалуйста, помогите

Solutions Collecting From Web of "Проверьте уровень полосы пропускания в Android"

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

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

//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); 

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

Но эта работа WIFI Only для 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 }