判断是否有网络连接
2021-09-05 本文已影响0人
搬码人
引入
我们在做一款App的时候,特别是涉及到需要向网络发起请求获取数据,需要用到判断是否有网络连接的方法。
这种方法是固定的,下面是判断是否有网络连接的方法。
代码
//判断是否有网络连接
private fun hasInternetConnection(): Boolean {
//获取系统的网络连接管理器
val connectivityManager = getApplication<Application>()
.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork = connectivityManager.activeNetwork ?: return false
val capability =
connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false
return when {
//wifi
capability.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
//手机本身的网络 蜂窝网
capability.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
//以太网
capability.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> true
else -> false
}
}
只要有三种网络中的一种就return true,否则就return false。