我正在开发一个能够通过它连接到WiFi网络的Android应用程序,一切正常,我正在创建可用的WiFi网络列表和用户用户之一建立连接,以下方法是用于建立连接的一个:
int netId;
boolean disableOthers;
wifiManager.enableNetwork(netId, disableOthers);
现在我两个场景:
disableOthers
设置为true
,这将禁用已连接的网络,以便与上述网络建立连接。disableOthers
设置为false
,不将禁用已连接的网络,因此无法建立新的网络连接,因为已经存在已成功建立连接。所以,我没有任何选择,只能使用案例一个,但问题是在禁用连接的网络时,如果由于任何原因(如密码错误或新密码错误)导致新网络连接失败超出范围,设备没有建立任何网络连接,所以,我想要的是一种方式使我能够重新获得以前的连接,当目标连接到新的连接失败。
更新
关于@bmartins的回答,我按照以下方式做了提示:
public static int net_id;
// storing the current connection Net.ID
WifiInfo info = wifiManager.getConnectionInfo();
net_id = info.getNetworkId();
// connecting to the new Net
private void connect(networkId){
wifiManager.disconnect();
wifiManager.enableNetwork(networkId, true);
wifiManager.reconnect();
wifiManager.saveConfiguration();
}
然后当连接失败时:
connect(net_id);
答案 0 :(得分:0)
听起来像是一个逻辑问题。
为什么不跟踪上一次成功的netId?如果新的失败 - >
wifiManager.enableNetwork(lastGoodNetId, true);