如何检测Wifi或GPRS信号强度是强还是弱

时间:2011-12-14 12:48:30

标签: android

我正在开发一个Android应用程序,我在其中调用webservices。我的问题是,如果我打电话给webservice并且wifi或GPRS强度很弱,那么我的应用程序强制关闭。如何检测wifi或GPRS信号强度是强还是弱?

1 个答案:

答案 0 :(得分:2)

首先,确保您的清单中有<uses-permission> for ACCESS_WIFI_STATE

其次,我不确定单个连接的通知,但是为了获得收音机看到的所有内容的通知,您可以开始扫描:

wifi.startScan();

接下来,当我收到成功的结果时,我在IntentFilter中使用了WifiManager.SCAN_RESULTS_AVAILABLE_ACTION

然后,在接收器中,我使用WifiManager对象中的getScanResults(),它还包含信号强度。

要以这种方式停止,只需调用unregisterRecever()(因此您需要保留它以进行引用)。我没有测试自己,看看我的扫描代码是否可以修改为只检查当前的连接,但我知道我有很多结果 - Wi-Fi信号经常快速地改变。我想要监控单个连接,您也可以只过滤扫描结果并查找设备当前连接的结果。

我希望这会有所帮助。

Android wifi's signal strength

Android: How to monitor WiFi signal strength