判断是否有网络连接

作者: 搬码人 | 来源:发表于2021-09-05 11:38 被阅读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。

相关文章

网友评论

    本文标题:判断是否有网络连接

    本文链接:https://www.haomeiwen.com/subject/dggziltx.html