2013-08-23 15 views
13

W mojej aplikacji muszę sprawdzić prędkość połączenia zarówno WiFi jak i danych mobilnych, a następnie porównać go, a następnie przełączyć się na kiedykolwiek największą prędkość sieci.Siła sygnału WIFI i komórkowej transmisji danych

  • Jak mogę uzyskać prędkość lub najlepszą moc sygnału Wi-Fi i komórkowej danych?
  • Jak mogę wyłączyć programowo?

Proszę mi pomóc. Próbka byłaby pomocna.

+0

Nigdy wcześniej tego nie robiłem, ale może to może ci trochę pomóc http://mobisocial.stanford.edu/news/2011/03/control-3g-interface-with-your-own-application-on- andriod-phone /. Reszta zadania powinna zostać wykonana poprzez sprawdzenie testów szybkości połączenia NetworkManager +. Mam nadzieję, że pomaga –

Odpowiedz

30

Wifi:

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

W przypadku mobilnych powinno działać:

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

Następnie należy to porównać poziomy sygnału i jeśli sygnał WIFI jest lepiej zachować go włączyć, ale jeśli telefon komórkowy jest lepiej odłączyć wifi

+0

jak programowo zmienić wifi ?? – WISHY

+4

Dodaj premię ACCESS_WIFI_STATE, CHANGE_WIFI_STATE Następnie możesz użyć w swojej klasie aktywności: wifiManager.setWifiEnabled (false); –

+0

thnx dużo kolega – WISHY