有一个问题,我想监测互联网连接。网络在线监测
BradcastReceiver女巫处理android.net.conn.CONNECTIVITY_CHANGE操作有很好的方法。但这还不够。
我想知道互联网何时可到达。例如: 如果我从路由器断开wan线路,我希望我的应用能够注意到它,并告诉我尽管wifi已连接,但我仍然处于“离线”状态。
那么,有没有一些默认的android解决方案,或者我应该让线程女巫反复ping一些主机?或者也许别的东西?
谢谢
有一个问题,我想监测互联网连接。网络在线监测
BradcastReceiver女巫处理android.net.conn.CONNECTIVITY_CHANGE操作有很好的方法。但这还不够。
我想知道互联网何时可到达。例如: 如果我从路由器断开wan线路,我希望我的应用能够注意到它,并告诉我尽管wifi已连接,但我仍然处于“离线”状态。
那么,有没有一些默认的android解决方案,或者我应该让线程女巫反复ping一些主机?或者也许别的东西?
谢谢
你根本无法做你想做的。由于某种原因,连接可能会在互联网的任何地方被破坏 - 您无法知道这一点。
如果您需要知道您是否可以访问某个特定地址,那么唯一可靠的方法是使用心跳信号 - Ping或持久连接上的常规流量。
据我所知,没有简单的方法来测试互联网是否可达。你可以重复ping一些主机,但这不是一个好的做法。这是非常耗电的方法。当您的应用发出请求并失败时,您应该考虑Internet无法访问并显示适当的Toast消息,屏幕或其他内容。另外,我建议你看看一些写得很好的应用,例如谷歌Play商店,我看他们是如何解决这些问题的。至少这是我做的:)
谢谢,我想我也试试这个:) – MartasSan
不完全是事实:见http://stackoverflow.com/questions/6493517/android-detect-if-device-has-internet-connection;虽然这可能仍然不能保证获得期望的终点...... :) – Trinimon
为什么这个正确的答案比ping到同一个地址更好? – MartasSan
@Trinimon你提出的问题的答案几乎可以说我在这里所说的。 – 2013-10-08 21:10:22