有问题,我想监控互联网连接。
BradcastReceiver 有一个很好的方法来处理 android.net.conn.CONNECTIVITY_CHANGE 操作。但这还不够。
我想知道什么时候可以上网。例如:如果我从路由器断开 wan 线,我希望我的应用程序注意到它并告诉我,尽管连接了 wifi,我仍处于“离线”状态。
那么,是否有一些默认的 android 解决方案,或者我应该让线程女巫反复 ping 到某个主机?或者也许是别的什么?
谢谢
有问题,我想监控互联网连接。
BradcastReceiver 有一个很好的方法来处理 android.net.conn.CONNECTIVITY_CHANGE 操作。但这还不够。
我想知道什么时候可以上网。例如:如果我从路由器断开 wan 线,我希望我的应用程序注意到它并告诉我,尽管连接了 wifi,我仍处于“离线”状态。
那么,是否有一些默认的 android 解决方案,或者我应该让线程女巫反复 ping 到某个主机?或者也许是别的什么?
谢谢
据我所知,没有简单的方法可以测试 Internet 是否可以访问。您可以反复 ping 到某个主机,但这不是一个好习惯。这是非常耗电的方法。当您的应用发出请求但失败时,您应该考虑无法访问 Internet 并显示适当的 toast 消息、屏幕或其他内容。此外,我建议您查看一些编写良好的应用程序,例如 Google Play 商店,我会了解它们如何解决此类问题。至少这是我所做的:)
你根本无法做你想做的事。由于某种原因,互联网上任何地方的连接都可能被破坏——你无法知道这一点。
如果您需要知道是否可以到达特定地址,那么唯一可靠的方法是使用心跳信号 - Ping 或持续连接上的常规流量。