1

我正在为 Android 制作一个应用程序,它需要在设备连接到 WiFi 网络时做出反应,我目前正在尝试使用 BroadcastReceiver 来实现它来监控 android.net.ConnectivityManager.CONNECTIVITY_ACTION - 这种方式是否正确,或者有没有更合适的方法?

4

2 回答 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 回答