2013-08-23 3 views
13

В моем приложении мне нужно проверить скорость соединения как Wi-Fi, так и Mobile Data, а затем сравнить его, а затем переключиться на самую быструю скорость сети.Получить уровень сигнала WIFI и мобильных данных

  • Итак, как я могу получить скорость или лучший уровень сигнала Wi-Fi и мобильных телефонов? данных?
  • Как я могу переключить один и другое программно.

Пожалуйста, помогите мне. Образец будет полезен.

+0

Никогда не делал этого раньше, но, возможно, это может помочь вам немного http://mobisocial.stanford.edu/news/2011/03/control-3g-interface-with-your-own-application-on- andriod-phone /. Остальную работу нужно выполнять, проверяя тесты скорости соединения NetworkManager +. Надеюсь, это поможет –

ответ

30

Wifi:

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

В случае мобильного она должна работать:

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

Тогда Вы должны сравнить эти уровни сигнала, и если сигнал WIFI лучше держать его включить, но если мобильный лучше отключить wifi

+0

как программно переключаться на Wi-Fi ??? – WISHY

+4

Добавить premission ACCESS_WIFI_STATE, CHANGE_WIFI_STATE Тогда вы можете использовать следующее в своем классе деятельности: wifiManager.setWifiEnabled (false); –

+0

thnx a lot mate – WISHY

Смежные вопросы