【问题标题】:How to check connectivity status of android device?如何检查安卓设备的连接状态?
【发布时间】:2019-09-20 14:25:16
【问题描述】:

我已经尝试了很多解决方案来获得答案,但没有任何帮助, 我需要你的帮助。 我正在开发针对(4.4.4)的最小sdk的android应用程序 当我检查连接状态时,由于不推荐使用的功能,它无法正常工作。 在android开发人员的官方网站上,解决方案是相同的,我无法解决我的问题。 任何帮助(如果可能,请提供代码) 谢谢。

private fun isOnLine(): Boolean {
    val connectivityManager = appContext.getSystemService(Context.CONNECTIVITY_SERVICE)
            as ConnectivityManager
    val networkInfo  = connectivityManager.activeNetworkInfo
    return networkInfo != null && networkInfo.isConnected

}

【问题讨论】:

    标签: android kotlin mvvm interceptor


    【解决方案1】:

    如果您的应用针对 api 24 或更高版本,您可以使用 ConnectivityManager

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    val connectivityManager = it.getSystemService(Context.CONNECTIVITY_SERVICE) as
                            ConnectivityManager
    
                    connectivityManager.registerDefaultNetworkCallback(object : NetworkCallback() {
                        override fun onAvailable(network: Network) {
                            //take action when network connection is gained
                        }
    
                        override fun onLost(network: Network?) {
                            //take action when network connection is lost 
                        }
                    })
                }
    

    【讨论】:

      【解决方案2】:

      这就够了:

          final ConnectivityManager connectivity = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
          final boolean isNetworkAvailable = connectivity.getActiveNetwork() == null;
      

      【讨论】:

      • 这在新的 API 上已被弃用,请改用connectivityManager.registerDefaultNetworkCallback
      猜你喜欢
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      相关资源
      最近更新 更多