2016-10-20 2 views
1

내 응용 프로그램의 웹 콜에 Volley를 사용하고 있으며 내 장치가 네트워크 연결을 얻지 못하고 검사하는 하나의 상태를 제외한 모든 것이 잘 작동하고 원활합니다. 코드를 통한 연결은 아래 코드를 사용하여 true를 반환합니다. 대신에 거짓 코드 위에 나에게이 예외를 돌려 내 발리 웹 호출을 사용하여 네트워크 상태를 반환com.android.volley.NoConnectionError를 처리하는 방법 : java.net.UnknownHostException

public static boolean isNetworkAvailable() { 

    ConnectivityManager connectivityManager = SessionApplication.getConnectivityManager(); 
    if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED || 
      connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) { 
     //we are connected to a network 
     return true; 
    } 
    else 
     return false; 
} 

"com.android.volley.NoConnectionError을 처리 : java.net.UnknownHostException를".

내 장치에서 브라우저를 열어 인터넷 연결을 확인했지만 작동하지 않는 것으로 나타났습니다. 그래서 나는 응용 프로그램의 동작은 괜찮지 만 여전히 사용자 친화적 인 사용자가 "인터넷 연결 확인"대화 상자를 표시해야하기 때문에 이러한 조건을 처리해야합니다.

이것은 안드로이드에서 흔히 발생하는 문제입니다. 어떤 상황이라도 이런 경우를 처리하기위한 최선의 방법을 제공 할 수 있도록 도와주세요. 미리 감사드립니다.

네트워크 상태는 다음과 같습니다 enter image description here

답변

1

이 방법이 예외는 연결에 문제가 있음을 나타냅니다

public boolean isConnectedToInternet(){ 
     connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      if (connectivityManager != null){ 
       NetworkInfo[] info = connectivityManager.getAllNetworkInfo(); 
       if (info != null){ 
        for (int i = 0; i < info.length; i++){ 
         if (info[i].getState() == NetworkInfo.State.CONNECTED){ 
          return true; 
         } 
        } 
       } 
      } 
      return false; 
    } 
+0

방금 ​​시도했지만이 역시 사실입니다. 첨부 된 스크린 샷을 참조하십시오. –

+0

@SureshSharma 로밍이 거짓입니다. 로밍 중에 네트워크 연결을 허용하십시오. –

1

도움이 될보십시오. 실제로 연결에 대한 대화 상자를 표시 할 수 있습니다. onErrorResponse(VolleyError error)을 재정의하면 다음과 같이 할 수 있습니다.

관련 문제