본문 바로가기

Android/Troubleshooting

사용 중인 네트워크의 타입 파악하기

 

앱을 리팩토링해도 계속 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"
        }
    }

 

이번에는 좀 원인을 찾고 싶다..