728x90

구글에 코틀린 인터넷 연결 확인하기 등으로 검색하면 방법이 많이 나온다.

 

https://altongmon.tistory.com/943

 

안드로이드 네트워크 연결상태 체크 ConnectivityManager.NetworkCallback 사용법

공감 및 댓글은 포스팅 하는데  아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 안드로이드에서 네트워크 상

altongmon.tistory.com

https://yunaaaas.tistory.com/9

 

[Android/Kotlin] - Wifi 연결 상태 확인하기

권한 설정하기 Network 권한을 설정해주는 permission을 추가해주세요! 사용법 ConnectionManager를 통해 Network Wifi 상태를 확인할 수 있습니다 : ) // 인터넷 연결 확인 함수 fun getNetworkConnected(context..

yunaaaas.tistory.com

좋은 방법들이 많이 나왔지만 API 30 에서 deprecated 된 코드 였다....허어어어어얼!!

 

여얼심히 구글링 하고 이것저것 테스트 해본 결과 스텍오버플로우에서 방법을 찾을 수 있었다.

private fun isNetworkAvailable(context: Context): Boolean {
    val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
    
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        val nw      = connectivityManager.activeNetwork ?: return false
        val actNw = connectivityManager.getNetworkCapabilities(nw) ?: return false
        
        return when {
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
            //for other device how are able to connect with Ethernet
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
            //for check internet over Bluetooth
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_BLUETOOTH) -> true
            else -> false
        }
    } else {
        return connectivityManager.activeNetworkInfo?.isConnected ?: false
    }
}

위 메소드를 코드에 삽입하고

if(!isNetworkAvailable(this)){
    val toast = Toast.makeText(this, "인터넷 연결을 확인해주세요.  \r\n어플리케이션을 종료합니다.", Toast.LENGTH_LONG)
    toast.setGravity(Gravity.CENTER, Gravity.CENTER_HORIZONTAL, Gravity.CENTER_VERTICAL)
    toast.show()

    ActivityCompat.finishAffinity(this)
    exitProcess(0)
}

Activity 'onCreate' 부분에 추가 하면 된다.

 

으허허허 스텍오버플로우 최고!

 

출처:

https://stackoverflow.com/questions/57284582/networkinfo-has-been-deprecated-by-api-29

 

NetworkInfo has been deprecated by API 29

I wanted to check the network connection. So, I used ConnectivityManager.activateNetworkInfo.isConnected unfortunately, that's deprecated in API 29. private fun isOnline(): Boolean { val

stackoverflow.com

728x90

+ Recent posts