我有一个应用程序,它具有一项功能,可以在用户在线/离线时通知用户。但是有一种情况是完全失败的。
我已经在整个网络上搜索(我希望搜索正确)以找到解决我问题的方法,但从未真正找到一个。用例如下:
先决条件:
- 安卓设备
- 无线网络
问题描述:
1 - 我已连接到无线路由器
2 - 路由器已连接到互联网
3 - 由于某种原因,路由器失去了与互联网的连接(我仍然连接到路由器,但它没有连接到互联网)
问题:
- 我曾尝试使用具有不同类型操作的广播接收器,但它们都仅在 WiFi 连接丢失/连接时触发...当 WiFi 不提供网络访问时不会触发。
我需要什么:
- 我需要捕捉(如果可能的话)一个告诉我“嘿,您的互联网状态已更改”的事件,以便我可以检查我是否可以访问。
最佳答案
我想你想要/需要做的是创建一个后台服务,配置为使用 AlarmManager 定期运行,这将检查是否有可靠的网络资源可用(即 ping 一个您信任一直在线的服务器)。
如果您的 ping 操作成功表明您在线并且连接到互联网;如果失败,则您已连接但不在线。
您必须在准确性(检查频率)和电池生命周期方面的性能之间做出折衷,因为如果您一直这样做,唤醒服务和发出 Web 请求对电池来说并不容易.
关于Android - 尽管我仍然连接到 WiFi,但我如何检测到我的应用已失去互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500493/