Android에서 인터넷 연결 변경 처리
질문은 인터넷 연결 변경을 모니터링할 수 있는 브로드캐스트 수신기의 필요성에 관한 것입니다. 기존 코드는 연결 변경만 감지합니다.
이 문제를 해결하기 위한 대체 접근 방식은 다음과 같습니다.
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;
}
}
이 메서드는 기기가 WiFi 또는 모바일 데이터에 연결되어 있는지 확인합니다.
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
}
}
}
}
이 BroadcastReceiver는 연결 상태 변경을 모니터링하고 현재 상태에 따라 작업을 트리거합니다. 적절한 권한을 포함하고 AndroidManifest.xml에 수신자를 등록해야 합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3