> Java > java지도 시간 > Android에서 인터넷 연결 변경을 처리하는 방법은 무엇입니까?

Android에서 인터넷 연결 변경을 처리하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-29 04:28:29
원래의
582명이 탐색했습니다.

How to Handle Internet Connectivity Changes in Android?

Android에서 인터넷 연결 변경 처리

질문은 인터넷 연결 변경을 모니터링할 수 있는 Broadcast Receiver의 필요성에 관한 것입니다. 기존 코드는 연결 변경만 감지합니다.

이 문제를 해결하기 위한 대체 접근 방식은 다음과 같습니다.

<code class="java">public class NetworkUtil {
    public static final int TYPE_WIFI = 1;
    public static final int TYPE_MOBILE = 2;
    public static final int TYPE_NOT_CONNECTED = 0;

    public static int getConnectivityStatus(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (activeNetwork != null) {
            if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
                return TYPE_WIFI;

            if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
                return TYPE_MOBILE;
        }
        return TYPE_NOT_CONNECTED;
    }
}</code>
로그인 후 복사

이 방법은 기기가 Wi-Fi 또는 모바일 데이터에 연결되어 있는지 확인합니다.

<code class="java">public class NetworkChangeReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent intent) {
        int status = NetworkUtil.getConnectivityStatus(context);
        if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction()) {
            if (status == NetworkUtil.TYPE_NOT_CONNECTED) {
                // Handle loss of internet connectivity
            } else {
                // Handle restoration of internet connectivity
            }
        }
    }
}</code>
로그인 후 복사

이 BroadcastReceiver는 연결 상태 변경을 모니터링하고 현재 상태에 따라 작업을 트리거합니다. 적절한 권한을 포함하고 AndroidManifest.xml에 수신자를 등록하는 것을 잊지 마세요:

<code class="xml"><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<receiver
        android:name="NetworkChangeReceiver"
        android:label="NetworkChangeReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
    </intent-filter>
</receiver></code>
로그인 후 복사

위 내용은 Android에서 인터넷 연결 변경을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿