这是检测WiFi网络连接的正确方法吗?

时间:2011-05-04 09:58:10

标签: android-wifi

我正在制作Android应用程序,需要对设备何时连接到WiFi网络作出反应,我正在尝试使用BroadcastReceiver来实现它来监控android.net.ConnectivityManager.CONNECTIVITY_ACTION - 这是这样的是正确的,还是有办法更合适?

2 个答案:

答案 0 :(得分:1)

@Jase,您需要注册才能收到WifiManager.NETWORK_STATE_CHANGED_ACTION。意图有一个NetworkInfo额外的。检查它以找到它的状态。如果状态为NetworkInfo.State.CONNECTED,则表示您已连接到网络。

有关实现此目的的示例代码,请查看here

答案 1 :(得分:0)

查看WifiManager.WIFI_STATE_CHANGED_ACTION

  

广播意图行动指示   Wi-Fi已启用,已禁用,   启用,禁用或未知。一   extra将此状态设置为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