判断是否有网络连接

作者: 搬码人 | 来源:发表于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