我正在为 Android 制作一个应用程序,它需要在设备连接到 WiFi 网络时做出反应,我目前正在尝试使用 BroadcastReceiver 来实现它来监控 android.net.ConnectivityManager.CONNECTIVITY_ACTION - 这种方式是否正确,或者有没有更合适的方法?
问问题
547 次
2 回答
1
@Jase,您需要注册才能接收WifiManager.NETWORK_STATE_CHANGED_ACTION
。意图有一个NetworkInfo
额外的。检查它以找到它的状态。如果状态为NetworkInfo.State.CONNECTED
,则您已连接到网络。
有关实现此目的的示例代码,请查看此处。
于 2011-07-06T13:09:12.887 回答
0
看看WifiManager.WIFI_STATE_CHANGED_ACTION
广播意图操作,指示 Wi-Fi 已启用、禁用、启用、禁用或未知。一个额外的提供这种状态作为一个 int。如果可用,另一个额外提供先前的状态。
和WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION
广播意图操作,指示与请求者的连接已建立(现在可以执行 Wi-Fi 操作)或与请求者的连接已丢失。一个额外的提供连接状态作为布尔值,其中 true 表示已连接。
从广播中阅读或在您收到以下任何内容时进行检查:
WifiManager wifi=(WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int state=wifi.getWifiState();
现在您可以检查状态,它将是其中之一
- WIFI_STATE_DISABLED
- WIFI_STATE_DISABLING
- WIFI_STATE_ENABLED <--有了这个你可以发送/接收数据
- WIFI_STATE_ENABLING
- WIFI_STATE_UNKNOWN
于 2011-05-29T21:19:07.407 回答