2013-10-08 107 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