我有以下方法,這將檢查在設備的互聯網連接:檢測Android應用程序中的Internet連接?
public static boolean checkInternetConnection(Context context) {
ConnectivityManager connectivityManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getActiveNetworkInfo() != null
&& connectivityManager.getActiveNetworkInfo().isAvailable()
&& connectivityManager.getActiveNetworkInfo().isConnected()) {
return true;
} else {
return false;
}
}
但過了一段我發現後此方法僅用於網絡連接性檢查;如設備連接到路由器並且路由器處於開啓狀態,但沒有互聯網可用,則此方法返回true。
那麼如何知道有真實的互聯網呢?
我會走得更遠一點,並說其最好檢查一下,如果你可以連接到一個專用的IP地址,如谷歌的靜態的,而不是依賴於DNS做查找。 –
是的,但是如果DNS被破壞,整個事情並沒有多大用處,對吧?也許,除非你正在編寫一個DNS應用程序,否則可能是 –
...... –