This is how I managed to check if WIFI is available or not without using deprecated libraries and adding support for marshamallow devices-
@ExperimentalCoroutinesApi
    suspend fun isWifiAvailable(): Boolean {
        val connectivityManager =
            ContextCompat.getSystemService(context, ConnectivityManager::class.java) ?: return false
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            val networkCapabilities = connectivityManager.activeNetwork ?: return false
            val activeNetwork =
                connectivityManager.getNetworkCapabilities(networkCapabilities) ?: return false
            return activeNetwork.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
        } else {
            return connectivityManager.isNetworkAvailable(NetworkCapabilities.TRANSPORT_WIFI)
//            val activeNetwork = connectivityManager.`activeNetworkInfo`
//            return activeNetwork?.type == ConnectivityManager.TYPE_WIFI
        }
    }
    @ExperimentalCoroutinesApi
    private suspend fun ConnectivityManager.isNetworkAvailable(vararg transportType: Int): Boolean {
        return suspendCancellableCoroutine { continuation ->
            val builder = NetworkRequest.Builder()
            transportType.forEach {
                builder.addCapability(it)
            }
            val networkRequest = builder.build()
            val networkCallback = object : ConnectivityManager.NetworkCallback() {
                override fun onAvailable(network: Network) {
                    super.onAvailable(network)
                    continuation.resume(true, null)
                    unregisterNetworkCallback(this)
                }
                override fun onLost(network: Network) {
                    super.onLost(network)
                    continuation.resume(false, null)
                    unregisterNetworkCallback(this)
                }
                override fun onUnavailable() {
                    super.onUnavailable()
                    continuation.resume(false, null)
                    unregisterNetworkCallback(this)
                }
            }
            registerNetworkCallback(networkRequest, networkCallback)
        }
    }