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