安卓Kotlin 获取网络类型名称

重写了get()方法,使用时直接读取该val即可

val netinfo: String
    get() {
    
    
        val cm: ConnectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
        return if (Build.VERSION.SDK_INT < 23) {
    
    
            cm.activeNetworkInfo?.let {
    
    
                if (!it.isAvailable) return@let "无网络"
                else return@let it.typeName
            } ?: "获取网络信息错误"
        } else {
    
    
            cm.getNetworkCapabilities(cm.activeNetwork)?.let {
    
    
            when {
    
    
                it.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> return@let "WIFI"
                it.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> return@let "移动数据"
                else -> return@let "无网络"
           }
       } ?: "获取网络信息错误"
   }
}

猜你喜欢

转载自blog.csdn.net/u011570312/article/details/107731575