2013-08-23 35 views
13

在我的应用程序中,我需要检查WiFi和移动数据的连接速度,然后比较它,然后切换到哪个网络具有最高速度。获取WIFI和移动数据的信号强度

  • 那么我怎样才能获得无线和移动 数据的速度或最佳信号强度?
  • 如何以编程方式关闭和关闭其他功能。

请帮我一把。 样本会有所帮助。

+0

从来没有这样做过,但也许这可以帮助你一点http://mobisocial.stanford.edu/news/2011/03/control-3g-interface-with-your-own-application-on- andriod-phone /。其余工作应通过检查NetworkManager +连接速度测试来完成。 希望它有帮助 –

回答

30

无线上网:

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

如何以编程方式切换WiFi? – WISHY

+4

Add premission ACCESS_WIFI_STATE,CHANGE_WIFI_STATE 然后,您可以在活动课程中使用以下内容: wifiManager.setWifiEnabled(false); –

+0

thnx很多伴侣 – WISHY

相关问题