>  기사  >  Java  >  Android에서 네트워크 연결 변경을 감지하고 처리하는 방법은 무엇입니까?

Android에서 네트워크 연결 변경을 감지하고 처리하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 19:22:02357검색

How to Detect and Handle Network Connectivity Changes in Android?

Android에서 네트워크 연결 모니터링

문제:

네트워크 변경 사항을 어떻게 모니터링할 수 있나요? Android 장치에 연결하고 네트워크 중단 이벤트를 캡처하시겠습니까?

답변:

Android에서 네트워크 중단 이벤트를 캡처하려면 다음 단계를 따르세요.

1. Broadcast Receiver 생성:

BroadcastReceiver 클래스를 확장하는 새 Java 클래스 생성:

<code class="java">public class ConnectionChangeReceiver extends BroadcastReceiver
{
  @Override
  public void onReceive( Context context, Intent intent )
  {
    // Network connectivity change handling code goes here
  }
}</code>

2. 브로드캐스트 수신기 등록:

내의 AndroidManifest.xml 파일에 다음 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>

3. 권한 부여:

내의 AndroidManifest.xml 파일에 다음 권한을 추가하세요. 요소:

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

4. 네트워크 연결 변경 처리:

ConnectionChangeReceiver 클래스의 onReceive 메서드 내에서 네트워크 연결 변경을 처리할 수 있습니다. 예를 들어 다음을 사용하여 활성 및 모바일 네트워크 정보를 확인할 수 있습니다.

<code class="java">ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE );
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE );</code>

예제 코드:

<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>

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

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