android - 查询 ConnectivityManager getActiveNetwork

标签 android android-networking

需要知道getActiveNetwork返回什么样的值。我使用的代码是:

    ConnectivityManager connectivityManager =  (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);    
    Network network = connectivityManager.getActiveNetwork(); 
    Log.e(TAG,"Network : " + network.toString());

输出返回数字,这个数字到底意味着什么?

最佳答案

很好,许多人提到在 6.0 SDK 版本之前不推荐使用 connectivityManager.activeNetworkInfo.typeconnectivityManager.activeNetworkInfo.typeName

我遇到过类似的情况,必须同时支持最低 5.0 和 >= 6.0 的设备。这对我有用。

if (SDK_INT >= M) {
        connectivityManager.activeNetwork
                ?.let { connectivityManager.getNetworkCapabilities(it) }
                ?.takeIf { it.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) }
                ?.takeIf { connectivityManager.activeNetworkInfo.isConnected }
                ?.let { return "Wifi is Connected" 
                     //Just to make a point. Better be a sealed class.
                }
    } else {
        connectivityManager.activeNetworkInfo
                ?.takeIf { it.isConnected && it.type == ConnectivityManager.TYPE_WIFI }
                ?.let { return "Wifi is Connected" }
    }

 return "Wifi is Disconnected"

关于android - 查询 ConnectivityManager getActiveNetwork,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49812761/

相关文章:

android - 波纹效果在滑动选项卡布局中不起作用

android - 我如何替换android中gridview中的单个图像?

java - gridview 中加载的图像在滚动时改变其位置

android - 即使 Wi-Fi 可用,也可以使用 LTE(蜂窝网络)下载 HTTP 文件

android - javax.net.ssl.SSLHandshakeException : java. lang.IllegalArgumentException : Invalid input to toASCII: ip_nbae7bac35. kodrive.xyz

java - 无法将 JSON 数据发送到其他 Android Activity

android - 用图标替换工具栏标题

java - 如何检查Android上的互联网访问? InetAddress 永远不会超时

android - rndis0 设备是如何创建的

android - Android 4.0 上出现异常 `android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode)`