[android] 안드로이드에서 네트워크와 인터넷 연결의 변화 감지

안드로이드 앱을 개발할 때, 네트워크 및 인터넷 연결 상태의 변화를 감지하여 사용자 경험을 향상시키는 것이 중요합니다. 이를 통해 앱이 오프라인이거나 느린 네트워크에도 적절히 대응할 수 있습니다. 안드로이드에서는 이러한 네트워크 및 인터넷 연결의 변화를 감지하는 방법을 제공하고 있습니다. 이번 포스트에서는 안드로이드 앱에서 네트워크 및 인터넷 연결의 변화를 감지하는 방법에 대해 알아봅니다.

1. 네트워크 연결 상태의 변화 감지

안드로이드에서는 ConnectivityManager를 통해 네트워크 연결 상태의 변화를 감지할 수 있습니다. 네트워크 상태가 변할 때마다 시스템은 Broadcast를 보내고, 이를 받아 처리할 수 있습니다.

다음은 네트워크 연결 상태의 변화를 감지하는 예제 코드입니다.

public class NetworkChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();

        if (isConnected) {
            // 네트워크 연결됨
        } else {
            // 네트워크 끊어짐
        }
    }
}

2. 인터넷 연결 상태의 변화 감지

인터넷 연결 상태의 변화는 ConnectivityManagerBroadcastReceiver를 사용하여 감지할 수 있습니다. 네트워크 연결과는 별도로 인터넷 연결 상태를 따로 확인해야 합니다.

다음은 인터넷 연결 상태의 변화를 감지하는 예제 코드입니다.

public class InternetConnectivityReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        boolean isOnline = activeNetwork != null && activeNetwork.isConnected();

        if (isOnline) {
            // 인터넷 연결됨
        } else {
            // 인터넷 연결 끊어짐
        }
    }
}

결론

안드로이드에서는 네트워크 및 인터넷 연결의 변화를 감지하는 기능을 제공하고 있으며, 이를 활용하여 앱의 사용자 경험을 향상시킬 수 있습니다. 네트워크 및 인터넷 연결의 변화를 감지하여 적절히 대응하는 안드로이드 앱을 개발하기 위해 위의 예제 코드와 안드로이드 공식 문서를 참고하시기 바랍니다.

참고 자료: Android Developer - ConnectivityManager, Android Developer - BroadcastReceiver


위의 예제 코드는 안드로이드 앱에서 네트워크 및 인터넷 연결 상태의 변화를 감지하는 방법에 대한 간단한 예시를 보여주기 위한 것입니다. 안드로이드의 다양한 버전 및 상황에 따라 실제 코드 구현 시에는 보다 신중한 접근과 유의가 필요합니다.