2013-04-16 2 views
1

응용 프로그램을 개발 중입니다. 시나리오는 다음과 같습니다. Android 기기가 인터넷에 연결되어 있지만 기기에 인터넷에 연결되어 있지 않습니다.Android 인터넷 연결 코드

private boolean isNetworkAvailable() { 
    ConnectivityManager connectivityManager 
      = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

그러나 내가 위에서 설명한 시나리오에 충돌 할 때마다 내 응용 프로그램에서 나는 인터넷 연결을 확인하려면이 코드를 사용하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.

감사

+0

그리고 충돌 않습니다를? – Elmi

+0

어떤 오류가 발생합니까? Logcat을 게시하십시오 .. – AndiM

답변

0

나는이

public boolean isOnline(Context con) { 
     try { 
      connectivityManager = (ConnectivityManager) con 
         .getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     connected = networkInfo != null && networkInfo.isAvailable() && 
       networkInfo.isConnected(); 
     return connected; 


     } catch (Exception e) { 
      System.out.println("CheckConnectivity Exception: " + e.getMessage()); 
      Log.v("connectivity", e.toString()); 
     } 
     return connected; 
    } 

를 처리하고 또한 파일을

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
+0

모두에게 감사드립니다. 이 오류가 발생하는 동안 logcat 값을 확인하십시오. 이 오류는 내 장치가 인터넷 연결을 표시하지만 인터넷에 연결되어 있지 않을 때 발생합니다. 다음을 확인하십시오. loagcat-http : //img41.imageshack.us/img41/3788/screenshots201304152343.png – Ullas

+0

logcat 값은 어디에 있습니까? – Abx

4

시도

공공 정적 부울 isInternetOn (컨텍스트 컨텍스트) {

ConnectivityManager cm = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    // test for connection 
    if (cm.getActiveNetworkInfo() != null 
      && cm.getActiveNetworkInfo().isAvailable() 
      && cm.getActiveNetworkInfo().isConnected()) { 
     Log.v(TAG, "Internet is working"); 
     // txt_status.setText("Internet is working"); 
     return true; 
    } else { 
     // txt_status.setText("Internet Connection Not Present"); 
     Log.v(TAG, "Internet Connection Not Present"); 
     return false; 
    } 
} 
0

사용이 명시 이러한 권한을 추가하려면이 방법을 쓴이 코드

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

      } 
      return false; 
    } 
0

확인이 :

private boolean isNetworkAvailable() 
{ 
    ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); 
    State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 

    if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) 
    {    
     // Wifi connected  
    } 
    else if(mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) 
    { 
     // Mobile network connected 
    } 
}