문제해결
android 기기가 반드시 인터넷에 연결되어 있는지 확인
hik14
2021. 3. 15. 16:59
developer.android.com/training/monitoring-device-state/connectivity-status-type?hl=ko
연결 상태 및 연결 측정 모니터링 | Android 개발자 | Android Developers
ConnectivityManager를 사용하여 인터넷에 연결되어 있는지 확인하고 연결되어 있다면 어떤 유형의 연결이 설정되어 있는지 확인할 수 있습니다. 인터넷에 연결되어 있는지 확인 인터넷에 연결되어
developer.android.com
안드로이드 마쉬멜로우 이전 버전(api 23)에서 사용하던, activeNetworkInfo가 디프리케이트 되었다
마쉬멜로우 이후 및 이전 모두 지원하는 코드
private fun isInternetAvailable(context: Context): Boolean {
var result = false
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// 마쉬멜로우 이후
val networkCapabilities = connectivityManager.activeNetwork ?: return false
val actNw =
connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false
result = when {
actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
actNw.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
else -> false
}
} else {
// 마쉬멜로우 이전
val nwInfo = connectivityManager.activeNetworkInfo ?: return false
return nwInfo.isConnected
}
return result
}