Tôi đang viết một chương trình mà tôi cần kiểm tra ba trạng thái: 1. Nếu tôi không có WiFi, 2. nếu tôi có WiFi nhưng không có kết nối internet (như nếu tôi bật bộ định tuyến nhưng rút cáp Ethernet) và 3. nếu tôi có kết nối Internet và Wi-Fi. Sau đó tôi sẽ thay đổi màu sắc của một biểu tượng trong ứng dụng của tôi để đại diện cho một trong các trạng thái này (đỏ, vàng hoặc xanh lục). Hiện tại tình trạng 2 không hoạt động, bất cứ lúc nào tôi rút cáp trên bộ định tuyến của mình để thử nghiệm, màu biểu tượng thay đổi từ xanh sang đỏ.Android Check nếu có WiFi nhưng không có internet
public static void doPing(Context context) {
String googleUrl = "https://www.google.com";
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, TIMEOUT_CONNECTION);
HttpConnectionParams.setSoTimeout(httpParameters, TIMEOUT_SOCKET);
HttpClient client = new DefaultHttpClient(httpParameters);
if (L) Log.i(TAG, "Calling: " + url);
HttpGet getGoogle = getHttpGet(googleUrl);
HttpResponse responseGoogle = client.execute(getGoogle);
if (responseGoogle != null){
connectionIconView.setIcon(R.drawable.green_wifi);
}
else if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null){
connectionIconView.setIcon(R.drawable.yellow_wifi);
}
else {
connectionIconView.setIcon(R.drawable.red_wifi);
}
} catch(Exception e) {
if (L) Log.e(TAG, "Error during HTTP call");
e.printStackTrace();
}
Tôi đoán bạn thực sự muốn nói "Nếu hàm 1 trả về true và hàm 2 trả về false -> đổi màu thành vàng ". Cảm ơn một bó Mặc dù! Tôi sẽ kiểm tra xem điều này có hoạt động hay không –
Ồ vâng! Tôi đã bỏ lỡ phần màu vàng. : D – Rohit5k2
trong khi gọi trang google, trang trắng xuất hiện trong mili giây. Làm cách nào để giải quyết nó – Ajay