0

语境

我只是想检测何时启用和禁用 wifi 适配器。

问题

当我启用适配器时,我会收到正确的通知。当我禁用适配器时,可能会发生两件事:

  1. 如果我连接到在没有互联网的情况下充当 AP 的专有硬件,我不会收到有关适配器已禁用的通知
  2. 如果我连接到“正常”wifi,我会收到适配器被禁用的通知
  3. 如果我没有连接到 wifi,我会收到适配器被禁用的通知

代码

class MyClass {
    val wifiAdapterBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            @Suppress("MoveVariableDeclarationIntoWhen")
            val currentState =
                intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN)
            when (currentState) {
                WifiManager.WIFI_STATE_DISABLED -> Log.d("tag", "false")
                WifiManager.WIFI_STATE_ENABLED -> Log.d("tag", "true")
            }
        }
    }

    init {
        context.applicationContext.registerReceiver(
            wifiAdapterBroadcastReceiver,
            IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION)
        )
    }
}

我在这里遗漏了什么还是这是一种非常奇怪的行为?

Android 11 - 自定义 ROM:dotOS 5.1

4

0 回答 0