如何在Android中检测WiFi接入点是否刚刚失去互联网连接

时间:2018-10-02 07:25:18

标签: android performance kotlin android-wifi

我正在寻找一种在以下情况下应对案件的方法:

  • 我已连接到WiFi
  • 访问点刚刚失去互联网连接(例如,路由器的电缆已拔出)

在这种情况下,系统会通知Android手机或笔记本电脑该状态,并在WiFi图标旁边显示感叹号。

是否可以在Android API中收到有关该状态的通知?我在查找文档,但未找到任何内容。

重要提示: 我不是要手动检查互联网连接,还是只是监听网络连接状态的变化,因为当我连接的WiFi接入点失去连接时,我不会收到通知。

因此,关于上述内容,我试图仅检查网络连接的更改,但正如我所解释的那样,这不足以满足我的情况:

override fun onReceive(context: Context, intent: Intent) {
val wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 
DEFAULT_WIFI_STATE_VALUE)
wifiStateSubject.onNext(wifiState)
Timber.d("Current wifi state: $wifiState")
}

1 个答案:

答案 0 :(得分:0)

您可以定期尝试以低ping和低超时率访问某些资源,如果它引发某种NetworkException,则可以假定该连接不可用。

UPD:

您可以使用或检查此库https://github.com/pwittchen/NetworkEvents