我希望isInternetAvailable
在我的项目中实现一个简单的方法,它根据调用时互联网(任何网络)是否可用返回真或假。
不幸getActiveNetworkInfo
的是,自 21 起已弃用,并且getActiveNetwork
需要最低 API 级别 23(我的是 21)。
我已经阅读过NetworkCallback
,但这似乎是在通知网络变化,我需要一种方法来判断网络现在是否可用。
我希望isInternetAvailable
在我的项目中实现一个简单的方法,它根据调用时互联网(任何网络)是否可用返回真或假。
不幸getActiveNetworkInfo
的是,自 21 起已弃用,并且getActiveNetwork
需要最低 API 级别 23(我的是 21)。
我已经阅读过NetworkCallback
,但这似乎是在通知网络变化,我需要一种方法来判断网络现在是否可用。
像这样使用NetworkCapabilities
:
fun isNetworkAvailable(): Boolean {
return connectivityManager.run {
getNetworkCapabilities(activeNetwork)?.run {
when {
hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
else -> false
}
} ?: false
}
}