2013-05-15 3 views
4

위시 인터넷 연결을 확인하기위한 테스트를 할 수 있습니다. 네트워크 상태를 확인하고 싶지 않습니다. 내 장치에서 인터넷을 활성화했는지 감지하기 때문입니다. 인터넷에 연결되어 있고 인터넷에 연결되어 있습니다. . 핑 (ping)과 같은 것.인터넷 연결 테스트 안드로이드

+0

인터넷 연결을 감지하는 가장 짧은 방법을 참조하십시오 그것을 여기 http://stackoverflow.com/questions/9570237/android-check-internet-connection/24692766#24692766 – Nepster

+0

@Nepster의 목적을 충족하지 않는 질문 – therealprashant

답변

11

시도 다음

public boolean checkOnlineState() { 
    ConnectivityManager CManager = 
     (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo NInfo = CManager.getActiveNetworkInfo(); 
    if (NInfo != null && NInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 

액세스 다른

if (InetAddress.getByName("www.xy.com").isReachable(timeout)) 
{ } 
else 
{ } 
+0

그게 전부 잘 작동하지만, 이건 내 와이파이, 3G를 활성화 한 경우에만 확인하지만 인터넷 연결이 존재하는지 확인하고 싶습니다. 때때로 우리는 wifi를 연결하고 인터넷은 내 wifi가 켜져 있는지 확인하고이 체크는 내려집니다. – Loreln

+0

당신이 사용해야하는 것보다 ok : if (InetAddress.getByName ("google.com"). isReachable (2000)) – Oli

1

그것은 나를 위해 일을하지

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

을 잊지 말아 :

은 네트워크 가용성을 확인하려면 다음

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

인터넷 접속을 확인하려면 :

public Boolean isOnline() { 
    try { 
     Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com"); 
     int returnVal = p1.waitFor(); 
     boolean reachable = (returnVal==0); 
     return reachable; 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return false; 
} 
+0

당신의 inernet 액세스를 확인하는 방법은 나를 위해 일했습니다 ... Android 4.3 jellybean을 제외하고, 나는 그 이유를 모른다. – Josh

0

사용이 코드를 인터넷 연결을 확인하기 위해이 장치를 통해 모든 인터넷 연결을 확인하십시오. 그리고 가장 확실한 방법으로 인터넷 사용 권한을 추가했는지 확인하십시오.

boolean flag=false; 
    ConnectivityManager connectivity = (ConnectivityManager) getApplicationContext().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) 
       { 
        flag=true; 

       } 

    } 
    if(flag==true) 
    { 
     Log.e("TAG","Internet Is Connected"); 
    } 
    else 
    { 
      Log.e("TAG","Internet Is Not Connected"); 
    } 
+0

'getAllNetworkInfo()'에는 ACCESS_NETWORK_STATE 권한이 필요합니다. –

+0

이 방법은 연결하려는 Wifi 핫스팟에도 인터넷이 있는지 여부를 감지하지 못합니다. – Josh