有什么方法可以检测用户关闭 WIFI 或数据的确切时间?

Is there any ways to detect the exact time that user turns off WIFI or Data?

  1. 我搜索了一下,发现Broadcast Receiver不推荐超过N的目标

  2. 我发现了GCMNetworkManager。而且还折旧了

  3. 我也检查了JobScheduler。但是,它的行为不是我想要实现的。

我唯一能在这三个中实现的方法是定期检查互联网状态。

但是,我不想要它。我想要的是在用户关闭或打开它们时检测事件。然后,我想显示一个对话框以确保用户再次打开它。

我的大学制作 iOS 说,他使用 Observer 作为他的 iOS 应用程序。并说也许 Android 是一样的。

有什么方法可以实现吗?

您可以考虑清单中的内容。

        <receiver android:name="receiver.NetworkChangeReceiver">
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
            </intent-filter>
        </receiver>

但是,这些已被弃用。

相反,您可以通过编程方式声明它。

  1. 创建接收器class。
class NetworkChangeReceiver : BroadcastReceiver() {
    var dialog: Dialog? = null

    override fun onReceive(context: Context, intent: Intent) {
        val isConnected = NetworkUtil.getConnectivityStatusString(context)

        Toast.makeText(context, "Intere State Changed: $isConnected", Toast.LENGTH_SHORT).show()
    }
}
  1. 在你的 Activity.
// Internet Check Receiver
val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
this.registerReceiver(NetworkChangeReceiver(), intentFilter)