2013-08-23 14 views
13

Nella mia app ho bisogno di verificare la velocità di connessione sia di WiFi che di dati mobili e quindi confrontarlo, quindi passare a quale rete abbia sempre la massima velocità.Ottieni la potenza del segnale di WIFI e dati mobili

  • Così come posso ottenere la velocità o la forza migliore di wifi e Mobile Data segnale?
  • come posso spegnere uno e l'altro su programmaticamente.

Please help me out. Un esempio sarebbe utile.

+0

Mai fatto prima, ma forse questo può aiutarti un po 'http://mobisocial.stanford.edu/news/2011/03/control-3g-interface-with-your-own-application-on- andriod-phone /. Il resto del lavoro dovrebbe essere fatto controllando i test della velocità di connessione di NetworkManager +. Spero che aiuti –

risposta

30

Wifi:

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

In caso di cellulare dovrebbe funzionare:

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

allora si dovrebbe confrontare questo livelli di segnale e se il segnale Wi-Fi è meglio tenerlo accende, ma se mobile è meglio disconnettere wifi

+0

come passare in modo programmato del wifi ?? – WISHY

+4

Aggiungi premission ACCESS_WIFI_STATE, CHANGE_WIFI_STATE Quindi è possibile utilizzare quanto segue nella classe di attività: wifiManager.setWifiEnabled (false); –

+0

thnx un compagno di lotto – WISHY

Problemi correlati