我有這個android應用程序,需要通過互聯網從遠程服務器加載數據。這個更新功能顯然要求設備不僅要連接到某種網絡,還要連接到互聯網。如何確定,如果互聯網連接目前可用並在Android設備上處於活動狀態?
因此:想要將更新服務安排到某個日期,並在啓動時它應確定它是否實際上可以到達目標服務器。因此,一個簡單的「是連接到無線網絡的設備?」這是不夠的,因爲該設備可能連接到不提供互聯網接入的無線網絡。像PING東西是必需的...
什麼是最簡單/最好的方式來確定,如果有互聯網連接可用,即服務器可到達?
我有這個android應用程序,需要通過互聯網從遠程服務器加載數據。這個更新功能顯然要求設備不僅要連接到某種網絡,還要連接到互聯網。如何確定,如果互聯網連接目前可用並在Android設備上處於活動狀態?
因此:想要將更新服務安排到某個日期,並在啓動時它應確定它是否實際上可以到達目標服務器。因此,一個簡單的「是連接到無線網絡的設備?」這是不夠的,因爲該設備可能連接到不提供互聯網接入的無線網絡。像PING東西是必需的...
什麼是最簡單/最好的方式來確定,如果有互聯網連接可用,即服務器可到達?
在StackOverflow上查看此answer。它應該就是你正在尋找的東西。
只要嘗試連接到您的服務器,並且超時(如果您尚未在可接受的時間段內開始下載進度)。
boolean connected;
ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
//we are connected to the internet
connected = true;
}
else
connected = false;
附加persmission:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Here是最好的答案的問題:
設備連接的路由器上,但沒有互聯網網關活躍。
問題:如果我的設備連接到某些不起互聯網網關功能的wifi網絡,該怎麼辦? – xenonite 2010-12-02 10:38:37