달달한 스토리

728x90
반응형

 

오늘로 두 번째 글이다.

 

오늘 배운 것 중에 유용한 녀석 중 하나였다.

 

간단하게 설명하면, 

 

네트워크가 켜져있는지 안 켜져 있는지 정보를 얻고,

 

그에 맞게 실행할 수 있다.

 

ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager.getActivityNetworkInfo(); 

if (networkInfo != null ) {

if (networkInfo.geType() == ConnectivityManager.TYPE_WIFI) {

// Wi-Fi일때 작업 

} else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { 

// 3G, LTE... 

}

} else { 

//데이터가 터지지 않을때,

}



출처: https://effectivecode.tistory.com/841 [Mr.후]

이런식으로 사용할 수 있다.

 

그런데 메서드를 실행해보니, networkInfo함수가 

 

API 29이상 부터 사용이 되지 않는다고 한다.

 

물론 분기 처리하면 되지만, 뭔가 찝찝했다.

 

그래서 해결책을 알아냈다.

 

            ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //23버전부터 사용가능
                Network network = connManager.getActiveNetwork();
                
                if(network == null){ //인터넷 연결이 안되어있으면,
                   //값실행
                }
            }

 

이런 식으로 network값을 가져와서 사용하면 된다.

 

이제 실행을 해보면,

 

데이터나 wifi를 틀지 않고 들어가면, 

 

저 안에 값이 실행된다.

 

network!= null이라고 치면,

 

그 반대로 데이터가 터진 상태에서 들어갈 때,

 

실행될 값을 입력할 수 있다.

 

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading