BroadcastReceiver for android.net.conn.CONNECTIVITY_CHANGE是否实际检查互联网连接?

时间:2017-01-29 04:24:37

标签: java android connection broadcastreceiver emulation

我使用BroadcastReceiver IntentFilter命名为android.net.conn.CONNECTIVITY_CHANGE,但在通过模拟器检查时,我发现即使没有真正的互联网连接,如果移动数据在仿真器中打开,表明连接处于活动状态。

CASE | MO_DATA | MO_WIFI | PC_INTER | RESP
---- | ------- | ------- | -------- | ----
1    | ON      | ON      | ON       | ON
2    | ON      | OFF     | ON       | ON
3    | OFF     | ON      | ON       | ON
4    | OFF     | OFF     | ON       | OFF
5    | ON      | ON      | OFF      | ON
6    | ON      | OFF     | OFF      | ON
7    | OFF     | ON      | OFF      | ON
8    | OFF     | OFF     | OFF      | OFF

即使在上述情况5,6和7中PC中没有互联网连接,响应也显示为ON,因为移动数据/ wifi或两者都被打开并且互联网不可用的实际状态不是反射。

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:2)

检查您是否有互联网连接的一种方法是向Google.com发出请求,如果您收到响应200,那么您将有一个有效的网络连接。

如果您将使用CONNECTIVITY MANAGER,那么无法确定所连接的网络是否具有正常工作的互联网,因为有时我们与WiFi连接但它无法正常工作。希望这会对你有帮助..

答案 1 :(得分:0)

具有意图过滤器的BroadcastReceiver android.net.conn.CONNECTIVITY_CHANGE在网络发生变化时被触发。网络连接 - 断开连接或反之亦然