【发布时间】: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