Android/Troubleshooting
사용 중인 네트워크의 타입 파악하기
몰름보반장
2024. 1. 15. 14:54
앱을 리팩토링해도 계속 DNS 오류가 발생한다.
미치겠네ㅋㅋ 원인이 뭔지
일단 서버에 로그를 남겨서 데이터를 수집해 보려한다.
데이터에 이것저것 다 집어 넣는 중인데, 그 중 사용자가 이용 중인 네트워크의 종류를 포함사키는 것이 좋을 것 같다고 생각했다.
wifi에서 cellular로 넘어갈때 발생하는 문제일까...?
아무튼 하단 코드는 네트워크 상태를 String으로 반환해 주는 코드이다.
@SuppressLint("MissingPermission")
fun getNetworkType(context: Context): String {
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val network: Network? = connectivityManager.activeNetwork
val networkCapabilities: NetworkCapabilities? = network?.let { capabilities ->
connectivityManager.getNetworkCapabilities(capabilities)
}
return when {
networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) == true -> "WIFI"
networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) == true -> "CELLULAR"
networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) == true -> "ETHERNET"
else -> "UNKNOWN"
}
}
이번에는 좀 원인을 찾고 싶다..