Obtener la intensidad de la señal de WIFI y datos móviles

En mi aplicación tengo que comprobar la velocidad de conexión de WiFi y Mobile Data y luego compararlo, a continuación, cambiar a la red que nunca tiene la mayor velocidad.

  • Entonces, ¿cómo puedo obtener la velocidad o la mejor potencia de la señal de wifi y datos móviles?
  • Cómo puedo cambiar uno apagado y otro en programatically.

Por favor, ayúdame. Una muestra sería útil.

Wifi:

WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); int linkSpeed = wifiManager.getConnectionInfo().getRssi(); 

En caso de móvil debe funcionar:

 TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); CellInfoGsm cellinfogsm = (CellInfoGsm)telephonyManager.getAllCellInfo().get(0); CellSignalStrengthGsm cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength(); cellSignalStrengthGsm.getDbm(); 

Entonces usted debe comparar estos niveles de señal y si la señal WIFI es mejor mantenerlo encender, pero si móvil es mejor desconectar wifi

  • ¿La habilitación Wi-Fi drena más o menos la batería al localizar la ubicación?
  • Forzar Android a usar 3G cuando en el área local wifi sin acceso a la red
  • ¿Cómo iniciar una conexión de red local programmically a través de hotspot Wi-Fi en Android?
  • Aplicaciones de Android, comunicación con un dispositivo conectado al puerto USB
  • Cómo obtener el estándar wifi
  • ¿Cómo hacer un peer androide a peer sin utilizar el servidor intermedio?
  • Android: Escaneado de redes Wifi + Lista seleccionable
  • ¿Cómo me conecto a una red Wi-Fi específica en Android mediante programación?
  • Escanear Wi-Fi de Android: Filtrar impresoras de ScanResult
  • Android - Por qué ConnectivityManager.isActiveNetworkMetered siempre devuelve true (incluso en Wifi)
  • Cómo deshabilitar la conexión automática WIFI en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.