做一个应用需要控制手机连接某一个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真正连接完成了呢?
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真正连接完成了呢?
解决方案 »
- 运行工程出现了Your project contains error(s),please fix them before running your applic
- android 中如何加入图片
- activty转换
- android如何实现Iphone的coverflow,求demo,急急急急急急急急
- 请教SQLite的一个问题
- 求解 WARNING: Unknown device API version!
- 新手请教一个关于Android消息机制的一个问题
- 如何在Android JNI编程中实现对信号量的操作?
- android之Gallery图库学习
- 大神,,求救!读取不了sd卡ini文件
- 【小白求助】android具备哪些知识或能力才能得到(或应聘上)一个android的实习机会啊
- 在/system/app下面的apk
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);
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {
handleWifiStateChanged(intent.getIntExtra(
WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN));
} else if (WifiManager.SUPPLICANT_STATE_CHANGED_ACTION.equals(action)) {
if (!mConnected.get()) {
handleStateChanged(WifiInfo.getDetailedStateOf((SupplicantState)
intent.getParcelableExtra(WifiManager.EXTRA_NEW_STATE)));
}
} else if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) {
NetworkInfo info = (NetworkInfo) intent.getParcelableExtra(
WifiManager.EXTRA_NETWORK_INFO);
mConnected.set(info.isConnected());
handleStateChanged(info.getDetailedState());
}
}
};
Context context = Mainactivity.this.getApplicationContext();
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if (!wifiManager.isWifiEnabled()){
//连接成功了,你要执行的操作
}