기존 프로젝트에서는 기기가 인터넷에 연결되어 있는지 확인하기위해
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