簡體   English   中英

如何確定,如果互聯網連接當前可用且在Android設備上有效?

[英]how to determine, if an internet connection is currently available and active on an android device?

我有這個Android應用程序,需要通過互聯網從遠程服務器加載數據。 這種更新功能顯然要求設備不僅要連接到某種網絡,還要連接到互聯網。

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

最簡單/最好的方法是什么,如果有互聯網連接可用,即服務器可以訪問?

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;

add persmission: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

只是嘗試連接到您的服務器,如果您沒有在可接受的時間段內開始下載進度,則會超時。

在StackOverflow上看一下這個答案 它應該是你正在尋找的。

是問題的最佳答案:

設備已連接到路由器,但沒有互聯網網關處於活動狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM