Получается, что соответствующий API для того, что вы хотите сделать, не является асинхронным c, поэтому сопрограммы не требуются:
private fun ConnectivityManager.isNetworkAvailable(
vararg transportType: /* android.net.NetworkCapabilities.Transport */ Int)
: Boolean {
val network = getActiveNetwork()
val caps = getNetworkCapabilities(network)
return caps != null && transportType.all(caps::hasTransport)
}
Для этого требуется только Manifest.permission.ACCESS_NETWORK_STATE
.
Если вы хотите активно искать сеть с необходимыми возможностями, вам нужно будет использовать requestNetwork
API. (и разрешение Manifest.permission.CHANGE_NETWORK_STATE
)