> Java > java지도 시간 > Android에서 안정적인 인터넷 연결 변경 수신기를 어떻게 만들 수 있나요?

Android에서 안정적인 인터넷 연결 변경 수신기를 어떻게 만들 수 있나요?

DDD
풀어 주다: 2024-10-29 10:12:02
원래의
1040명이 탐색했습니다.

How can I create a reliable Internet connectivity change listener in Android?

Android의 인터넷 연결 변경 리스너

연결 변경에 대한 기본 브로드캐스트 수신기는 네트워크 가용성을 모니터링하지만 반드시 인터넷 연결일 필요는 없습니다. 이 제한 사항을 해결하기 위해 보다 포괄적인 접근 방식을 살펴보겠습니다.

인터넷 연결 모니터링

다음 유틸리티 클래스를 활용하여 현재 인터넷 연결 상태를 확인하세요.

<code class="java">public class NetworkUtil {
  public static int getConnectivityStatus(Context context) {
    // Check for active network
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

    // Determine network type (Wi-Fi, mobile, or not connected)
    if (activeNetwork != null) {
      if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
        return TYPE_WIFI;
      } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
        return TYPE_MOBILE;
      }
    }
    return TYPE_NOT_CONNECTED;
  }

  // Convert network status to string representation (Wi-Fi, mobile, or not connected)
  public static int getConnectivityStatusString(Context context) {
    int conn = NetworkUtil.getConnectivityStatus(context);
    int status = 0;
    if (conn == NetworkUtil.TYPE_WIFI) {
      status = NETWORK_STATUS_WIFI;
    } else if (conn == NetworkUtil.TYPE_MOBILE) {
      status = NETWORK_STATUS_MOBILE;
    } else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) {
      status = NETWORK_STATUS_NOT_CONNECTED;
    }
    return status;
  }
}</code>
로그인 후 복사

인터넷 연결 변경을 위한 브로드캐스트 수신기

인터넷 연결 변경을 수신하는 브로드캐스트 수신기 만들기:

<code class="java">public class NetworkChangeReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(final Context context, final Intent intent) {
    int status = NetworkUtil.getConnectivityStatusString(context);
    if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction())) {
      if (status == NetworkUtil.NETWORK_STATUS_NOT_CONNECTED) {
        // Handle loss of Internet connection
      } else {
        // Handle recovery of Internet connection
      }
    }
  }
}</code>
로그인 후 복사

AndroidManifest.xml 구성

AndroidManifest.xml에서 Broadcast Receiver와 필요한 권한을 선언하세요.

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