Android에서 인터넷 연결 변경 처리
질문은 인터넷 연결 변경을 모니터링할 수 있는 Broadcast Receiver의 필요성에 관한 것입니다. 기존 코드는 연결 변경만 감지합니다.
이 문제를 해결하기 위한 대체 접근 방식은 다음과 같습니다.
<code class="java">public class NetworkUtil { public static final int TYPE_WIFI = 1; public static final int TYPE_MOBILE = 2; public static final int TYPE_NOT_CONNECTED = 0; public static int getConnectivityStatus(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null) { if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) return TYPE_WIFI; if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) return TYPE_MOBILE; } return TYPE_NOT_CONNECTED; } }</code>
이 방법은 기기가 Wi-Fi 또는 모바일 데이터에 연결되어 있는지 확인합니다.
<code class="java">public class NetworkChangeReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { int status = NetworkUtil.getConnectivityStatus(context); if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction()) { if (status == NetworkUtil.TYPE_NOT_CONNECTED) { // Handle loss of internet connectivity } else { // Handle restoration of internet connectivity } } } }</code>
이 BroadcastReceiver는 연결 상태 변경을 모니터링하고 현재 상태에 따라 작업을 트리거합니다. 적절한 권한을 포함하고 AndroidManifest.xml에 수신자를 등록하는 것을 잊지 마세요:
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!