마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

[네트워크 확인] ping / isReachable 질문.!

0 추천

와이파이 연결은 하였으나 와이파이 신호가 약해서 네트워크에 연결되어 있지 않을 때

"네트워크 상태를 확인해주세요"를 표시하려고 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");
이 부분으로 옵니다. 
 
무엇이 잘못되었나요..
 
슈퍼꽃붕어 (1,600 포인트) 님이 2015년 2월 11일 질문
슈퍼꽃붕어님이 2015년 2월 11일 수정

1개의 답변

0 추천

네트워크(LTE포함) 상태 체크 코드

http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=33329

참고하셔요

nicehee (73,100 포인트) 님이 2015년 2월 11일 답변
제가 질문드린것은 와이파이 연결 상태에서 와이파이 신호가 약할때 네트워크에 연결되어있는것인지 확인하는 방법을 물어본것입니다. 질문내용이 확실하지 않았나보네요..
checkOnline2Task 가 결국은 통신이 되는지의 여부를 검사하는것 아닙니까?

테스트는 안해봤는데 와이파이 신호가 약해서 통신이 안된다면
시스템에서 false를 주지않을까요??

checkOnline2Task 대신에 아래의 방법으로 해보시는것도 검토해보셔용
http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=149948
...