2

我希望isInternetAvailable在我的项目中实现一个简单的方法,它根据调用时互联网(任何网络)是否可用返回真或假。

不幸getActiveNetworkInfo的是,自 21 起已弃用,并且getActiveNetwork需要最低 API 级别 23(我的是 21)。

我已经阅读过NetworkCallback,但这似乎是在通知网络变化,我需要一种方法来判断网络现在是否可用。

4

1 回答 1

0

像这样使用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
    }
}
于 2019-08-11T21:26:17.743 回答