2011-08-24 5 views
1

Android 앱을 제작 중이며 아래 코드를 사용하여 네트워크에 연결되어 있는지 확인합니다. 그것은 잘 작동하고 모바일 및 와이파이 네트워크를 모두 감지합니다.WIFI가 인터넷에 연결되어있을 때를 감지하는 방법은 무엇입니까?

제 문제는 실제 인터넷 연결을 감지하는 방법입니다. 아래의 코드는 WIFI에 연결되어 있으면 true를 반환하지만 WIFI가 반드시 인터넷에 연결되어 있지는 않습니다.

코드 시간에 대한

protected boolean checkInternetConnection() {  
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    // test for connection  
    if (cm.getActiveNetworkInfo() != null    
      && cm.getActiveNetworkInfo().isAvailable()    
      && cm.getActiveNetworkInfo().isConnected()) { 

     return true; 

     } 
    else {    
     return false; 

     } 

} //end checkInterneConnection method 

감사합니다.

답변

1

인터넷 주소를 찾으십시오. 그 때문에 당신은 InetAdress 클래스와 메소드의 isReachable 확인해야합니다 : 신호가 그것이 토스트 다른 현명하지 표시됩니다 불량 인 경우, http://developer.android.com/reference/java/net/InetAddress.html#isReachable%28int%29

+0

나를 InetAddress 클래스로 안내해 주셔서 감사합니다. 이 게시물에 설명 된대로 getByName() 메서드를 사용하여 끝났다 ... http://stackoverflow.com/questions/4602120/network-access-in-android-emulator – Mel

0

당신은 인터넷을 방문 괜찮은지 확인 핑 http://google.com 또는이 같은 일을 시도 할 수 있습니다.

2

코드의이 작품은, 장치 인터넷 conecction 여부를 확인합니다을

ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo Info = conMan.getActiveNetworkInfo(); 

     if(Info == null){ 
      Toast.makeText(RegisterActivity.this,"Network Connection Failed! ", Toast.LENGTH_SHORT).show(); 
     } 
1

이 작업을 시도해야합니다 :

public boolean isConnectingToInternet(){ 
    ConnectivityManager connectivity = (ConnectivityManager) 
      m_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; 
} 

만 와이파이가 확인하는 간단한 :

private boolean isWifiConnected() { 
    int WIFI_STATE = wifi.getWifiState(); 
    if(WIFI_STATE == WifiManager.WIFI_STATE_ENABLED) 
     return true; 

    return false; 
} 
+0

wifi가 연결되어 있는지 확인하려면 더 좋을 것입니다. WifiManager.WIFI_STATE_ENABLED를 사용하는 것이 좋습니다. 특히 확인한 후에 무언가에 사용해 보려는 경우 특히 그렇습니다. – MikeF

관련 문제