2013-10-08 103 views
0

有一个问题,我想监测互联网连接。网络在线监测

BradcastReceiver女巫处理android.net.conn.CONNECTIVITY_CHANGE操作有很好的方法。但这还不够。

我想知道互联网何时可到达。例如: 如果我从路由器断开wan线路,我希望我的应用能够注意到它,并告诉我尽管wifi已连接,但我仍然处于“离线”状态。

那么,有没有一些默认的android解决方案,或者我应该让线程女巫反复ping一些主机?或者也许别的东西?

谢谢

回答

0

你根本无法做你想做的。由于某种原因,连接可能会在互联网的任何地方被破坏 - 您无法知道这一点。

如果您需要知道您是否可以访问某个特定地址,那么唯一可靠的方法是使用心跳信号 - Ping或持久连接上的常规流量。

+0

不完全是事实:见http://stackoverflow.com/questions/6493517/android-detect-if-device-has-internet-connection;虽然这可能仍然不能保证获得期望的终点...... :) – Trinimon

+0

为什么这个正确的答案比ping到同一个地址更好? – MartasSan

+0

@Trinimon你提出的问题的答案几乎可以说我在这里所说的。 – 2013-10-08 21:10:22

0

据我所知,没有简单的方法来测试互联网是否可达。你可以重复ping一些主机,但这不是一个好的做法。这是非常耗电的方法。当您的应用发出请求并失败时,您应该考虑Internet无法访问并显示适当的Toast消息,屏幕或其他内容。另外,我建议你看看一些写得很好的应用,例如谷歌Play商店,我看他们是如何解决这些问题的。至少这是我做的:)

+0

谢谢,我想我也试试这个:) – MartasSan