监听网络连接状态

  • 通过注册网络回调 (NetworkCallback),可以动态监控 Wi-Fi 的连接状态。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager

    val networkCallback = object : ConnectivityManager.NetworkCallback() {
    override fun onAvailable(network: Network) {
    val networkCapabilities = connectivityManager.getNetworkCapabilities(network)
    if (networkCapabilities?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) == true) {
    Log.d("WiFi", "Wi-Fi network is available")
    }
    }

    override fun onLost(network: Network) {
    Log.d("WiFi", "Wi-Fi network is lost")
    }
    }

    val request = NetworkRequest.Builder()
    .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
    .build()

    connectivityManager.registerNetworkCallback(request, networkCallback)
  • 结束时调用反注册

    1
    connectivityManager.unregisterNetworkCallback(networkCallback)