我使用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或两者都被打开并且互联网不可用的实际状态不是反射。
有没有办法解决这个问题?
答案 0 :(得分:2)
检查您是否有互联网连接的一种方法是向Google.com发出请求,如果您收到响应200,那么您将有一个有效的网络连接。
如果您将使用CONNECTIVITY MANAGER,那么无法确定所连接的网络是否具有正常工作的互联网,因为有时我们与WiFi连接但它无法正常工作。希望这会对你有帮助..
答案 1 :(得分:0)
具有意图过滤器的BroadcastReceiver android.net.conn.CONNECTIVITY_CHANGE在网络发生变化时被触发。网络连接 - 断开连接或反之亦然