【发布时间】:2011-07-13 15:49:31
【问题描述】:
在我的应用程序中,我有一个BroadcastReceiver,它通过<receiver> 标签作为组件启动,过滤android.net.conn.CONNECTIVITY_CHANGE 意图。
我的目标只是知道何时建立了 Wifi 连接,所以我在 onReceive() 中所做的是:
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI && networkInfo.isConnected()) {
// Wifi is connected
}
它工作正常,但是当建立 Wifi 连接时,我似乎总是在大约一秒钟内得到两个相同的意图。我试图查看我可以从意图中获得的任何信息,ConnectivityManager 和 WifiManager,但我找不到任何可以区分这两种意图的信息。
查看日志,至少还有另外一个BroadcastReceiver 也接收到两个相同的意图。
它在装有 Android 2.2 的 HTC Desire 上运行
知道为什么当 Wifi 连接时我似乎得到了“重复”的意图,或者两者之间的区别可能是什么?
【问题讨论】:
-
youtube.com/playlist?list=PLrnPJCHvNZuBqr_0AS9BPXgU6gvNeai5S 对最近实现广播接收器的方法有很好的理解
标签: android android-wifi android-broadcastreceiver