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 중국어 웹사이트의 기타 관련 기사를 참조하세요!