【问题标题】:Get signal strength of WIFI and Mobile Data获取 WIFI 和移动数据的信号强度
【发布时间】:2013-08-26 07:12:44
【问题描述】:

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

  • 那么我怎样才能获得wifi和手机的速度或最佳信号强度 数据?
  • 如何以编程方式关闭一个并打开另一个。

请帮帮我。 一个样本会很有帮助。

【问题讨论】:

  • 以前从未这样做过,但也许这可以帮助你一点mobisocial.stanford.edu/news/2011/03/…。其余工作应通过检查 NetworkManager + 连接速度测试来完成。希望对你有帮助

标签: android performance connection switch-statement wifi


【解决方案1】:

无线网络:

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

【讨论】:

  • 添加权限 ACCESS_WIFI_STATE, CHANGE_WIFI_STATE 然后你可以在你的活动类中使用以下内容:wifiManager.setWifiEnabled(false);
  • 记住信号强度是负值
  • 移动信号强度检查代码仅适用于 API 级别 17 及以上。
  • @pepe-pa 怎么判断连接太低?(信号太低我想停止下载)
  • 使用4G时报错android.telephony.CellInfoLte cannot be cast to android.telephony.CellInfoGsm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 2013-10-17
  • 2014-07-26
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多