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

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

Mary-Kate Olsen
풀어 주다: 2024-10-24 19:51:02
원래의
905명이 탐색했습니다.

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

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

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

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

해결책:

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<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에 필요한 권한을 추가합니다

1

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

로그인 후 복사

3. AndroidManifest.xml

1

2

3

4

5

6

<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를 동적으로 등록해야 하는 경우 다음 접근 방식을 사용할 수 있습니다.

1

2

3

<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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿