当手机连接到某个 WiFi 网络时,我想执行一些操作。据我所见,我有 2 个要拦截的广播意图来满足这一点: 1. Wifi 状态已更改。2. 连通性改变。
然而问题是我只想拦截 Wifi Connected 事件。目前我的接收器会在 WiFi 发生任何变化时触发,包括断开连接,我并不真正关心。我觉得这是在浪费 CPU 时间。
有没有更具体的意图,比如“Wifi Connected”?或者,我可以在意图过滤器中添加一些东西来实现这一点吗?
谢谢!
当手机连接到某个 WiFi 网络时,我想执行一些操作。据我所见,我有 2 个要拦截的广播意图来满足这一点: 1. Wifi 状态已更改。2. 连通性改变。
然而问题是我只想拦截 Wifi Connected 事件。目前我的接收器会在 WiFi 发生任何变化时触发,包括断开连接,我并不真正关心。我觉得这是在浪费 CPU 时间。
有没有更具体的意图,比如“Wifi Connected”?或者,我可以在意图过滤器中添加一些东西来实现这一点吗?
谢谢!
您可以通过请求他的额外信息来确定网络事件的类型。首先,确保您IntentFilter
在WifiManager.NETWORK_STATE_CHANGED_ACTION
操作上注册了一个并将其绑定到一个正确的BroadcastReceiver
.
然后在接收者的onReceive
方法中,可以检查接收到的事件是否为NetworkInfo.State.CONNECTED
事件:
@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (networkInfo != null
&& networkInfo.getState().equals(NetworkInfo.State.CONNECTED) ) {
// Do whatever you want
}
}
据我所知,没有办法WifiManager.NETWORK_STATE_CHANGED_ACTION
按状态(连接/断开)或网络名称过滤意图。
太糟糕了 :(