[英]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.