본문 바로가기
IT/Android

Android 네트워크 인터넷 연결 상태 확인하기

by TechTonic 2023. 3. 17.
반응형
개요

 

Android API 29 에서 NetworkInfo 가 deprecated 되어 사용하지 못하게 되었다.

이에 대체할 수 있는 발법에 대해 포스팅 해보자.

 

네트워크 권한 설정

 

우선 네트워크 사용 및 연결 상태를 확인하기 위해서는 아래 두 권한이 필요하다.

AndroidManifest.xml 파일에 추가해주자.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

네트워크 상태 읽기

 

1. ConnectivityManager 객체를 생성한다.

2. ConnectivityManager 객체를 사용하여 Network 정보를 가져온다.

3. Network 객체를 사용하여 NetworkCapabilities 값을 가져온다.

4. NetworkCapabilities 값을 활용하여 인터넷 연결 상태 여부를 확인한다.

 

public static boolean getNetwork(Context context) {
    boolean enable = false;
    ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    Network network = manager.getActiveNetwork();
    NetworkCapabilities actNetwork = manager.getNetworkCapabilities(network);

    if(actNetwork == null){
        return enable;
    }

    if(actNetwork.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) || actNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){
        enable = true;
    }

    return enable;
}
반응형

댓글