怎么判断手机wifi连接一个AP已经完成
如何判断手机wifi连接一个AP已经完成
做一个应用需要控制手机连接某一个AP,用了:
boolean connected = mWifiAdmin.Connect(ssid, passwd, 3);
其中Connect的实现如下:
每次连接的时候Connect立刻就返回了,这个时候需要根据connected的值在界面显示对于的状态,可是实际上手机该ssid之间的连接还没有完成,因为正如我们手机上面的wifi设置,连接一个wifi的时候都需要几秒的时间才能连接上。请问如何判断手机与这个ssid真正连接完成了呢?
------解决方案--------------------
收系统的intent。
做一个应用需要控制手机连接某一个AP,用了:
boolean connected = mWifiAdmin.Connect(ssid, passwd, 3);
其中Connect的实现如下:
public boolean Connect(String SSID, String Password, int Type) {
WifiConfiguration wifiConfig = CreateWifiInfo(SSID, Password, Type);
if (wifiConfig == null) {
Log.d(TAG, "wifiConfig==null");
return false;
}
WifiConfiguration tempConfig = this.IsExsits(SSID);
if (tempConfig != null) {
mWifiManager.removeNetwork(tempConfig.networkId);
}
int netID = mWifiManager.addNetwork(wifiConfig);
boolean bRet = mWifiManager.enableNetwork(netID, true);
return bRet;
}
每次连接的时候Connect立刻就返回了,这个时候需要根据connected的值在界面显示对于的状态,可是实际上手机该ssid之间的连接还没有完成,因为正如我们手机上面的wifi设置,连接一个wifi的时候都需要几秒的时间才能连接上。请问如何判断手机与这个ssid真正连接完成了呢?
------解决方案--------------------
收系统的intent。
183 mFilter = new IntentFilter();
184 mFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
185 mFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
186 mFilter.addAction(WifiManager.NETWORK_IDS_CHANGED_ACTION);
187 mFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION);
188 mFilter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
189 mFilter.addAction(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION);
190 mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
191 mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);