Mã này luôn trả về đúng sự thật. Điều này được gọi khi nhấn nút Đăng nhập. Lần đầu tiên tôi thử kết nối wifi (trên trình mô phỏng). Nó trở lại sự thật và sau đó tôi ngắt kết nối wifi và sau đó thử. nó vẫn trả về sự thật.Thông tin mạng Android luôn trả về true ngay cả khi internet không có sẵn
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
// if no network is available networkInfo will be null
// otherwise check if we are connected
if (networkInfo != null && networkInfo.isConnected()) {
State network = networkInfo.getState();
Log.d("here", "true");
return (network == NetworkInfo.State.CONNECTED || network == NetworkInfo.State.CONNECTING);
}
Log.d("here1", "false");
return false;
}
Vì vậy, không có cách trực tiếp nào để biết Internet có khả dụng hay không? –
Không có. Vấn đề là "mạng" là một vấn đề định nghĩa ở đây. Bạn có thể kết nối với wifi, với quyền truy cập đầy đủ vào mạng nội bộ và điều đó có thể phù hợp với ứng dụng của bạn. Bạn cũng có thể ngồi sau một tường lửa rất hạn chế, chặn, ví dụ, www.facebook.com để giữ cho năng suất của nhân viên tăng lên. Bạn sẽ cần thực hiện kiểm tra rõ ràng đối với dịch vụ bạn quan tâm hoặc url chung. ConnectivityService của tôi không phải là khoa học tên lửa, và tôi sẽ làm sạch nó và đăng nó ở đây khi tôi có một chút thời gian - có lẽ không phải trước thứ hai mặc dù. – 323go
câu trả lời tuyệt vời lý do tôi nếu tôi trích dẫn câu trả lời của bạn bất cứ khi nào nó phù hợp bởi vì nó làm tôi phát điên 1 – shareef