无名之辈的Android之路

判断是否有网络连接

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。

上一篇下一篇

猜你喜欢

热点阅读