레이블이 네트워크 연결상태인 게시물을 표시합니다. 모든 게시물 표시
레이블이 네트워크 연결상태인 게시물을 표시합니다. 모든 게시물 표시

2014년 2월 27일 목요일

Android의 네트워크 연결 상태 확인

Android 앱에서 네트워크 연결이 필요한 작업을 할 때 3G나 WiFi 연결이 되어 있지 않으면 오류가 발생한다.

이를 애초에 막기 위해서 네트워크 연결이 필요한 작업을 하기 전에 네트워크 연결 상태를 확인하는 로직을 넣어줄 수 있다.

우선 네트워크 상태에 접근할 수 있는 퍼미션을 AndroidManifest.xml에 추가한다.

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

퍼미션을 추가했다면 아래와 같이 코드를 구현한다.

private boolean checkNetwordState() {
    ConnectivityManager connManager = cManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo state_3g = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    NetworkInfo state_wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    return state_3g.isConnected() || state_wifi.isConnected();
}

이후 네트워크 연결상태 확인이 필요한 부분에 해당 함수를 호출해서 체크하면된다.