如何检查Android设备的连接状态?

时间:2019-09-20 14:25:16

标签: android kotlin mvvm interceptor

我已经尝试了很多解决方案来找到答案,但是没有任何帮助, 我需要你的帮助。 我正在开发针对(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

}

2 个答案:

答案 0 :(得分:0)

如果您的应用定位到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 
                    }
                })
            }

答案 1 :(得分:0)

这足够好:

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