와이파이 연결은 하였으나 와이파이 신호가 약해서 네트워크에 연결되어 있지 않을 때
"네트워크 상태를 확인해주세요"를 표시하려고 isReachable함수를 사용했습니다.
그러나 이 코드는 항상 false를 리턴합니다.
코드는 다음과 같습니다.
private class checkOnline2Task extends AsyncTask<String, Void, Boolean>{
@Override
protected Boolean doInBackground(String... params) {
String address = params[0];
try {
InetAddress ia = InetAddress.getByName(address);
if( ia.isReachable(2000)){
Log.e("nw3","true");
return true;
}else{
Log.e("nw3","false1");
return false;
}
} catch (UnknownHostException e) {
e.printStackTrace();
Log.e("nw3","false2");
return false;
} catch (IOException e) {
e.printStackTrace();
Log.e("nw3","false3");
return false;
}
}
}
public boolean checkOnline2(){
boolean result = false;
try {
result = new checkOnline2Task().execute("android.com").get();
Log.e("nw3","result : "+result);
} catch (InterruptedException e) {
e.printStackTrace();
Log.e("nw3","false4");
} catch (ExecutionException e) {
e.printStackTrace();
Log.e("nw3","false5");
}
return result;
}
로그를 찍어보니
Log.e("nw3","false1");
이 부분으로 옵니다.
무엇이 잘못되었나요..