【发布时间】:2015-01-11 11:45:38
【问题描述】:
我正在开发一个应用程序,当 WiFi 连接到预定义的 SSID 时,我需要在其中启动服务。谁能帮我这个?当 WiFi 连接(未打开)时,android 中是否有广播?
【问题讨论】:
我正在开发一个应用程序,当 WiFi 连接到预定义的 SSID 时,我需要在其中启动服务。谁能帮我这个?当 WiFi 连接(未打开)时,android 中是否有广播?
【问题讨论】:
是的,它叫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 对象检查状态。
【讨论】: