我關注了this以檢查互聯網連接的可用性。我面對的問題是,即使當我的桌面(作爲WiFi熱點)沒有互聯網連接,仍然這個代碼返回正面。我想確保如果wifi信號缺失,結果必須是負值。 這可以實現嗎?Android:檢查互聯網連接
1
A
回答
0
所以,你必須告訴你,互聯網連接是否可用與否的方法,但是你想想,這是不夠的,因爲它沒有描述連接的質量。
您可以嘗試輪詢某個網站以查看,如果您收到響應並根據該響應決定是否繼續進行某些網絡請求。但在我看來,這不值得。
相反,您可以發送您的請求並處理可能的網絡錯誤,因爲這是您必須做的事情(服務器可能已關閉)。那麼,爲什麼要做額外的測試?
2
這是我使用的檢查,如果有一個在我的應用程序互聯網連接的代碼,它的工作對我來說:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return ((activeNetworkInfo != null) && activeNetworkInfo.isConnected());
}
0
雖然您的設備連接到無線網絡,您可能無法獲得輸入數據。所以,你可以ping通Google.com或任何其他網站,看看有沒有迴應回來代碼200
public class internetchek extends AsyncTask<Void,Void,Void> {
public boolean connection;
Context ctx;
public internetchek(Context context){
this.ctx = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
if(isNetworkAvailable(this.ctx))
{
Log.d("NetworkAvailable","TRUE");
if(connectGoogle())
{
Log.d("GooglePing","TRUE");
connection=true;
}
else
{
Log.d("GooglePing","FALSE");
connection=false;
}
}
else {
connection=false;
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
return true;
}
return false;
}
public static boolean connectGoogle() {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(10000);
urlc.connect();
return (urlc.getResponseCode() == 200);
} catch (IOException e) {
Log.d("GooglePing","IOEXCEPTION");
e.printStackTrace();
return false;
}
}}
相關問題
- 1. Android連續檢查互聯網連接
- 2. 檢查互聯網連接
- 3. 互聯網連接檢查
- 4. 檢查互聯網連接
- 5. 檢查互聯網連接
- 6. 檢查互聯網連接
- 7. 檢查互聯網連接
- 8. Android互聯網連接檢查
- 9. 在Android中檢查互聯網連接
- 10. Android互聯網連接檢查問題
- 11. Android定期檢查互聯網連接
- 12. 在Android上檢查互聯網連接
- 13. Android檢查互聯網連接
- 14. 超時檢查互聯網連接Android
- 15. Android,檢查互聯網連接
- 16. 在android中檢查互聯網連接
- 17. 在Android上檢查互聯網連接
- 18. Android自動檢查互聯網連接
- 19. Android自動檢查互聯網連接
- 20. 檢查互聯網連接或不斷檢查互聯網連接
- 21. Android - 檢查互聯網連接,並自動連接
- 22. 在android中檢測互聯網連接
- 23. 檢測互聯網連接
- 24. 檢測互聯網連接
- 25. Strophe.js:檢查互聯網連接
- 26. 檢查互聯網連接OKHTTP
- 27. 互聯網連接並檢查它
- 28. 不斷檢查互聯網連接
- 29. Xamarin檢查互聯網連接
- 30. 使用offline.js檢查互聯網連接
如果你是桌面系統沒有連接作爲你的路由器/調制解調器,你可以通過調用你的網絡服務器或Google.com來檢查你的連接是否有效。 –
你有沒有嘗試我的答案,併爲你工作? – Vucko
嗨Vucko ...你的方法工作正常。 – Mandroid