2013-06-25 7 views
0

이것은 내가 전화가 인터넷에 연결되어 있는지 확인하기 위해 사용하고있는 코드입니다 : 내가 떨어져 내 컴퓨터의 Wi-Fi 인터넷을 설정하는 경우에도 에뮬레이터에connectivitymanager.getActiveNetworkInfo() 인터넷이 꺼져 있으면 true를 반환합니다 (Android)?

public boolean isOnline() { 
    ConnectivityManager cm = 
     (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 

, 이것은 사실이 반환됩니다. 컴퓨터가 인터넷에 연결되어 있지 않아도 에뮬레이터의 최상단 막대에 3G 기호가 표시됩니다. 내 코드에 문제가 있습니까? 아니면이 문제가 에뮬레이터 문제입니까? 당신이 장치가 isOnline에 전화시 연결되어 있는지 여부를 확인하려면

+0

에뮬레이터에는 비행기 모드가 있습니다 (추측합니다). 끄고 메서드는 false를 반환해야합니다 – Geros

답변

2

당신은 isConnected 대신 isConnectedOrConnecting 호출해야합니다.

일반적으로 에뮬레이터에는 하드웨어 기능 API와 관련된 많은 문제/버그가 있으며, 그 중 하나 일 수 있습니다. 귀하의 코드는 괜찮습니다.

+0

이 코드가 실제 장치에서 작동하는지 확인할 수 있습니까? 감사. –

+0

예, 기기에서 실행 해 보겠습니다. – Jong

+1

예상대로 내 Galaxy S2에서 작동합니다. 'isOnline'은 장치가 WiFi 또는 셀룰러 네트워크에있을 때 true를 반환하고, 아무 것도 없을 때는 false를 반환합니다. – Jong