2010-11-11 61 views
3

我有這個android應用程序,需要通過互聯網從遠程服務器加載數據。這個更新功能顯然要求設備不僅要連接到某種網絡,還要連接到互聯網。如何確定,如果互聯網連接目前可用並在Android設備上處於活動狀態?

因此:想要將更新服務安排到某個日期,並在啓動時它應確定它是否實際上可以到達目標服務器。因此,一個簡單的「是連接到無線網絡的設備?」這是不夠的,因爲該設備可能連接到不提供互聯網接入的無線網絡。像PING東西是必需的...

什麼是最簡單/最好的方式來確定,如果有互聯網連接可用,即服務器可到達?

回答

1

在StackOverflow上查看此answer。它應該就是你正在尋找的東西。

2

只要嘗試連接到您的服務器,並且超時(如果您尚未在可接受的時間段內開始下載進度)。

4
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" />

+2

問題:如果我的設備連接到某些不起互聯網網關功能的wifi網絡,該怎麼辦? – xenonite 2010-12-02 10:38:37

0

Here是最好的答案的問題:

設備連接的路由器上,但​​沒有互聯網網關活躍。

相關問題