투케이2K

905. (Android/Java) ConnectivityManager , NetworkCapabilities 사용해 현재 휴대폰 인터넷 사용 가능 상태 확인 본문

Android

905. (Android/Java) ConnectivityManager , NetworkCapabilities 사용해 현재 휴대폰 인터넷 사용 가능 상태 확인

투케이2K 2024. 11. 21. 20:50

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java

- 개발 툴 : Android Studio

- 구분 : 간단 소스

- 참고 : 

  >> 모바일 셀룰러 및 인터넷 사용 가능한 와이파이는 true , 와이파이는 연결 되었지만 인터넷 사용이 불가능 한 로컬 AP 연결 인 경우 false

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

// [ConnectivityManager 생성]
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);


// [안드로이드 버전 분기 처리]
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {

    Network network = cm.getActiveNetwork();

    NetworkCapabilities networkCapabilities = cm.getNetworkCapabilities(network);

    // [인터넷 사용가능 하고 , 유효한 연결인지 확인 수행]
    boolean hasCapabilityInternet = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
    boolean hasCapabilityValidated = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);

    // [and 결과로 인터넷 사용 가능한 네트워크 환경 상태 체크]
    boolean result = (hasCapabilityInternet && hasCapabilityValidated);

    S_Log._W_("현재 연결된 네트워크 인터넷 사용 가능 상태 확인", new String[]{
            "result :: " + String.valueOf(result)
    });
}

// -----------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------

W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro$1.onClick(A_Intro.java:362)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-11-21 13:58:51 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 현재 연결된 네트워크 인터넷 사용 가능 상태 확인]
I/: ----------------------------------------------------
I/: [LOG :: result :: true]
W///===========//: ================================================

// --------------------------------------------------------------------------------------

 

반응형
Comments