知道 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
是的,有一个 Broadcast
:NETWORK_STATE_CHANGED_ACTION。当新状态为 CONNECTED 时,Intent
会额外包含 BSSID(参见上面链接的文档)。您可以通过包含的 NetworkInfo
对象检查状态。
我正在开发一个应用程序,当 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
是的,有一个 Broadcast
:NETWORK_STATE_CHANGED_ACTION。当新状态为 CONNECTED 时,Intent
会额外包含 BSSID(参见上面链接的文档)。您可以通过包含的 NetworkInfo
对象检查状态。