본문 바로가기

ANDROID/Debug Logs

[안드로이드] getter for type : Int is deprecated on NetworkInfo 처리

기존 프로젝트에서는 기기가 인터넷에 연결되어 있는지 확인하기위해

 

NetworkInfo class를 가져와 클래스의 type을 ConnectivityManager의 파라미터로 확인했었는데

 

(아래처럼)

...

val connManager = ApplicationClass.instance.getSystemService(Context.CONNECTIVITY_SERVICE)
					as ConnectivityManager	// ConnectivityManager 클래스 
                    
val activeNetwork = connManager.activeNetworkInfo // NetworkInfo 클래스

if (activeNetwork.type == ConnectivityManger.TYPE_WIFI) {
	// something happens
} else if (activeNetwork.type == ConnectivityManager.TYPE_MOBILE {
	// also something happens 
}

...

NetworkInfo의 type을 불러오는 부분이 Deprecated 되었다는 경고를 확인하였고, 

 

코드를 대체하기 위해 간단히 레퍼런스를 참조하여 아래와 같이 변경해주었다.

 

...

val connManager = ApplicationClass.instance.getSystemService(Context.CONNECTIVITY_SERVICE)
					as ConnectivityManager	// ConnectivityManager 클래스 
                    
val activeNetwork = connManager.activeNetworkInfo // NetworkInfo 클래스

if (activeNetwork != null) {
	// activeNetwork가 null이 아니라면 인터넷이 잘 연결되어 있다는 것.
} else {
	// activeNetwork가 null이라면 인터넷이 연결되어 있지 않다는 것.
}

...

단순히 인터넷이 연결된 상태라면 ConnectivityManager 내부에 NetworkInfo 클래스가 생성되는 방식이라 

 

가능한 간단한 방법인가보다.

 

(와이파이를 잡고 있는지, 데이터망을 잡고있는지 확인이 불필요하여 기존의 조건이 추가되지 않았음.)

 

 

 

<참조>

https://stackoverflow.com/questions/54951793/getter-is-deprecated-after-converting-code-to-kotlin

 

Getter is deprecated after converting code to Kotlin

I'm trying to set some values to some dialog properties based on list item position and have just converted some code from Java to Kotlin, but for some reason, all the myList[position] instances wi...

stackoverflow.com