>  기사  >  Java  >  Android에서 네트워크 상태 변경 및 오프라인 이벤트를 감지하는 방법은 무엇입니까?

Android에서 네트워크 상태 변경 및 오프라인 이벤트를 감지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-24 19:51:02659검색

How to Detect Network Status Changes and Offline Events on Android?

Android에서 네트워크 상태 변경 모니터링

질문: Android에서 네트워크 상태 변경을 어떻게 감지할 수 있습니까? 특히 네트워크가 오프라인 상태일 때?

네트워크 상태 변경을 캡처하기 위해 Android는 BroadcastReceiver 클래스를 제공합니다. ConnectivityManager 클래스를 사용하면 활성 네트워크 연결에 대한 정보를 얻을 수 있습니다.

해결책:

1. BroadcastReceiver를 확장하는 Java 클래스 생성

<code class="java">public class ConnectionChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
        NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        if (activeNetInfo != null) {
            Toast.makeText(context, "Active Network Type: " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
        }

        if (mobNetInfo != null) {
            Toast.makeText(context, "Mobile Network Type: " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
        }
    }
}</code>

2. AndroidManifest.xml에 필요한 권한을 추가합니다

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

3. AndroidManifest.xml

<code class="xml"><receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver"
          android:label="NetworkConnection">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver></code>

에 BroadcastReceiver를 등록합니다.4. BroadcastReceiver를 동적으로 등록(선택 사항)

코드에 BroadcastReceiver를 동적으로 등록해야 하는 경우 다음 접근 방식을 사용할 수 있습니다.

<code class="java">BroadcastReceiver receiver = new ConnectionChangeReceiver();
IntentFilter filter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
context.registerReceiver(receiver, filter);</code>

이 코드를 사용하면 다음을 수행할 수 있습니다. 네트워크 상태 변경 사항을 캡처하고 네트워크가 오프라인 상태가 되는 시기를 결정합니다. 애플리케이션 로직에 따라 이벤트를 처리할 수 있습니다.

위 내용은 Android에서 네트워크 상태 변경 및 오프라인 이벤트를 감지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.