有什么方法可以检测用户关闭 WIFI 或数据的确切时间?
Is there any ways to detect the exact time that user turns off WIFI or Data?
我搜索了一下,发现Broadcast Receiver
不推荐超过N的目标
我发现了GCMNetworkManager
。而且还折旧了
- 我也检查了
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>
但是,这些已被弃用。
相反,您可以通过编程方式声明它。
- 创建接收器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()
}
}
- 在你的
Activity
.
// Internet Check Receiver
val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
this.registerReceiver(NetworkChangeReceiver(), intentFilter)
我搜索了一下,发现
Broadcast Receiver
不推荐超过N的目标我发现了
GCMNetworkManager
。而且还折旧了- 我也检查了
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>
但是,这些已被弃用。
相反,您可以通过编程方式声明它。
- 创建接收器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()
}
}
- 在你的
Activity
.
// Internet Check Receiver
val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
this.registerReceiver(NetworkChangeReceiver(), intentFilter)