知道 wifi 何时连接到特定的 SSID

Know when wifi is connected to a particular SSID

我正在开发一个应用程序,当 WiFi 连接到预定义的 SSID 时,我需要在其中启动服务。谁能帮我这个? android 中是否有在 WiFi 连接(未打开)时触发的广播?

是的,它叫 ConnectivityManager:

ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo netInfo = conMan.getActiveNetworkInfo();

您可以使用getType()检查是否是WiFi连接:

netInfo.getType() == ConnectivityManager.TYPE_WIFI

有关详细信息,请参阅 this post

编辑

要获取 SSID,请尝试:

WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo connectionInfo = wifiManager.getConnectionInfo();
connectionInfo.getSSID();

如所见here

是的,有一个 BroadcastNETWORK_STATE_CHANGED_ACTION。当新状态为 CONNECTED 时,Intent 会额外包含 BSSID(参见上面链接的文档)。您可以通过包含的 NetworkInfo 对象检查状态。