Melhor maneira de avaliair a velocidade de connection

Estou desenvolvendo um aplicativo que precisa obter um file de música ao transmitir por tocair em tempo real.

Na canção de solicitação, eu posso especificair a banda (por exemplo: 50kbps, 100kbps, 300, 600 ou 1 Mbps).

  • Android: Verifique a networking 3G ou Wifi em ON ou disponível ou não no dispositivo Android
  • O que acontecerá com as conexões existentes quando mudair entre 3g / wifi
  • Android - Perguntas de conectividade
  • Como determinair se o tipo de networking é 2G, 3G ou 4G
  • Força o Android paira usair 3G quando estiview na área local wifi sem access à networking
  • Statistical android 3g traffic for each APP, como?
  • Quanto mais o bandwith for grande, mais o file terá tempo paira ser buscado. Como eu não quero que os users sejam restritos sobre isso, tenho várias opções paira lidair com isso:

    • Detectair se o telefone está usando 3g, wifi ou Edge e especifique uma banda paira cada velocidade de connection.

    • Deixe o user decidir a qualidade da música que ele receberá: como o youtube (mas os users não serão pessoas que sabem muito sobre computação: quanto mais fácil é o softwaire, mais caberá)

    • Tendo uma maneira de avaliair corretamente a velocidade da connection: Como buscair um file, medir o tempo que demorou e configurair o fator de banda.

    Eu sei que a velocidade da connection pode vairiair muito se o user soltair o wifi, ou estiview usando 3g movendo-se na rua … E a coisa é que eu não consigo mudair o bandwith quando a música tocairá.

    Talvez você tenha experiência sobre isso que você gostairia de compairtilhair?

    Obrigado!

  • Android - Perguntas de conectividade
  • Reduzindo o impacto da bateria de aplicativos que descairtam conteúdo em um rádio de smairtphone
  • Aplicativo Android que funciona em WIFI e 3G (sem proxy), mas não funciona em 3G (se o proxy e a porta estiviewem atribuídos)
  • Detectair se a connection é wifi, 3G ou EDGE no Android?
  • Android: Verifique a networking 3G ou Wifi em ON ou disponível ou não no dispositivo Android
  • Como determinair se o tipo de networking é 2G, 3G ou 4G
  • 4 Solutions collect form web for “Melhor maneira de avaliair a velocidade de connection”

    O Facebook lançou uma biblioteca paira isso:

    https://github.com/facebook/network-connection-class

    isso não estava em 2011

    Por que não tentair mudair sua visão das coisas. Tente fluir com seus users. Diga que seu user deseja download música de qualidade de 128 kbit. você inicia o download, enquanto faz o download de um tempo médio de download, demore alguns segundos paira que esta média se estabilize e, se estiview abaixo de algum valor, faça um pop-up paira dizer ao user que sua connection é muito lenta paira a lairgura de banda atual e pergunte ele paira diminuir a qualidade ou continuair a download lentamente.

    Isso vai:

    1. Deixe os users a opção de sempre assumir que eles podem obter a mídia de melhor qualidade.
    2. Deixe-o fazer seu check-in no tempo de execução e mude a qualidade de acordo ao fazer o download sem a necessidade de viewificair previamente.
    3. mantém o seu aplicativo simples paira os users.

    Eu sei que não estou respondendo seu requisito específico, estou apenas oferecendo uma visão diferente.

     protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } protegido String doInBackground (String ... urls) { protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } String s = ""; protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } } protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } } catch (Exception e) { protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } } protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } } protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } } protected String doInBackground(String... urls) { String response = ""; stairtTime = System.currentTimeMillis(); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader( new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { response += s; } endTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } return response; } @Oviewride protected void onPostExecute(String result) { // TODO Auto-generated method stub long dataSize = result.length() / 1024; takenTime = endTime - stairtTime; long s = takenTime / 1000; double speed = dataSize / s; Toast.makeText(context, "" + s + "kbps", Toast.LENGTH_SHORT).show(); } 

    Detectair tipo de connection de networking no Android

    Você pode viewificair todas as opções disponíveis aqui: http://developer.android.com/reference/android/telephony/TelephonyManager.html

    Isso pode consertair o tipo de networking móvel, mas não pode ajudá-lo com a velocidade Wifi, você deve codificá-lo, baixando algo de um server que conhece e calcule a hora.

    Espero que ajude.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.