获得WIFI和移动数据的信号强度

WIS*_*SHY 14 connection performance android switch-statement wifi

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

  • 那么如何才能获得wifi和移动数据的速度或最佳信号强度?
  • 如何以编程方式关闭一个和另一个.

请帮帮我.样本会有所帮助.

pep*_*-pa 33

无线上网:

WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
int linkSpeed = wifiManager.getConnectionInfo().getRssi();
Run Code Online (Sandbox Code Playgroud)

如果是移动设备,它应该工作:

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

然后你应该比较这个信号电平,如果WIFI信号更好保持开启,但如果移动更好断开wifi

  • 移动信号强度检查的代码仅适用于API级别17及更高级别. (7认同)
  • 添加预置ACCESS_WIFI_STATE,CHANGE_WIFI_STATE然后您可以在您的活动类中使用以下内容:wifiManager.setWifiEnabled(false); (4认同)
  • 记住信号强度是一个负值 (4认同)
  • @ pepe-pa我们怎样才能确定连接太低?(我希望在连接信号太低时停止下载) (2认同)