【问题标题】:Why is activeNetwork null? (in android)为什么 activeNetwork 为空? (在安卓中)
【发布时间】:2022-01-07 20:34:21
【问题描述】:

在Activity onStart方法中查看网络状态。

这是我的来源。

override fun onStart() {
    super.onStart()
    if (!NetworkManager.checkNetworkState(this))
        showDialog("")
}

object NetworkManager {
    fun checkNetworkState(context: Context): Boolean {
        val connectivityManager =
            context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager

        val nw = connectivityManager.activeNetwork ?: return false
        val actNw = connectivityManager.getNetworkCapabilities(nw) ?: return false
        return when {
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> true
            actNw.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> true
            else -> false
        }
    }
}

问题的位置在这里。 val nw = connectivityManager.activeNetwork ?: 返回 false

在以下情况下会间歇性发生。 当从后台更改为前台时,ActiveNetwork 为空。 但是,我连接了网络并且我有权限

我的设备 API 是 Android 11

你知道为什么 activeNetwork 为空吗?

【问题讨论】:

    标签: android networking


    【解决方案1】:
    Do you know why is activeNetwork null?
    

    当它返回null时,表示你的设备根本没有连接到互联网

    getActiveNetwork() 返回与当前活动的默认数据网络对应的 Network 对象。

    您可以在这里阅读更多内容:https://developer.android.com/reference/android/net/ConnectivityManager

    【讨论】:

    • 感谢您的评论。但是,我连接了网络...
    猜你喜欢
    • 2013-06-13
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多