투케이2K

908. (Android/Java) [간단 소스] NetworkRequest 간단 설명 및 사용 옵션 정리 본문

Android

908. (Android/Java) [간단 소스] NetworkRequest 간단 설명 및 사용 옵션 정리

투케이2K 2024. 12. 3. 19:55

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

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

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 기술 구분 : NetworkRequest / 네트워크

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






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. NetworkRequest 란 Android Api 21 (안드로이드 5.0) 에서 추가 된 네트워크 요청 객체 입니다


2. NetworkRequest 는 NetworkRequest.Builder 를 통해 네트워크에 요청하거나, ConnectivityManager#requestNetwork 를 통해 변경 사항을 수신하는데 사용 됩니다

  >> ConnectivityManager#requestNetwork 에서 사용하는 경우 NetworkRequest 와 일치하는 연결된 네트워크를 찾고, 네트워크가 있으면 반환합니다

  >> 참고 사항으로 OS 특성 상 현재 가장 잘 연결된 네트워크를 유지하고, 더 나은 네트워크 (예: 더 저렴하거나 더 빠른 네트워크) 가 발견되면 시스템은 요청을 더 잘 처리하기 위해 그 더 나은 네트워크를 불러옵니다


3. NetworkRequest 사용 주요 함수 : 

  >> canBeSatisfiedBy(NetworkCapabilities nc) : NetworkRequest 에서 요청된 기능이 충족되는 경우에만 true를 반환합니다
  >> getCapabilities() : 인스턴스에 설정된 모든 기능을 가져옵니다
  >> getSubscriptionIds() : 이 인스턴스에 설정된 모든 구독 ID를 가져옵니다
  >> getTransportTypes() : 이 인스턴스에 설정된 모든 전송을 가져옵니다


4. NetworkRequest 사용 방법 예시 소스 코드 :

  NetworkRequest networkRequest = new NetworkRequest.Builder()
        .removeTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
        .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
        .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) // [와이파이 사용 설정]
        .setNetworkSpecifier(wifiNetworkSpecifier)
        .build();

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






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://developer.android.com/reference/android/net/NetworkRequest

https://blog.naver.com/kkh0977/223665327951?trackingCode=blog_bloghome_searchlist

https://blog.naver.com/kkh0977/223554797505?trackingCode=blog_bloghome_searchlist

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

 

반응형
Comments