네트워크 체크 할때 wifi , mobile (3g , lte ...)를 구분지어서 체크 하려고 하는데
3G , 4G, LTE 서비스가 불가능한 버전에서는 mobile network 확인 부분에서 NullPointer Error 가발생되는군요
따라서 wifi 를 먼저 체크 하고 mobile 을 그다음에 체크 한다음에 사용하는게 올바른 체크 방법인듯 합니다.
try ~ catch 로 예외처리도 해 놓으니 그럭저럭 쓸만해서 공유합니다.
private static boolean isOnline() { // network 연결 상태 확인
try {
ConnectivityManager conMan = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = conMan.getNetworkInfo(1).getState(); // wifi
if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
return true;
}
State mobile = conMan.getNetworkInfo(0).getState(); // mobile ConnectivityManager.TYPE_MOBILE
if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
return true;
}
} catch (NullPointerException e) {
return false;
}
return false;
}
오호~ 감사합니다.