728x90
구글에 코틀린 인터넷 연결 확인하기 등으로 검색하면 방법이 많이 나온다.
https://altongmon.tistory.com/943
https://yunaaaas.tistory.com/9
좋은 방법들이 많이 나왔지만 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
728x90