如何在失去网络连接后恢复网络连接



我正在开发一个android应用程序,它可以通过它连接到WiFi网络,一切都很好,我正在创建可用的WiFi网络列表,用户用户可以建立连接,以下方法用于建立连接:

int netId;
boolean disableOthers;
wifiManager.enableNetwork(netId, disableOthers);

现在我有两个场景:

  • 第一种是将disableOthers设置为true,这将禁用连接的网络,以便与上述网络建立连接
  • 第二个是将disableOthers设置为false,这将禁用连接的网络,因此新的网络连接将不会建立,因为已经存在成功建立的连接

因此,我没有任何选择,只能使用one,但问题是在禁用连接的网络时,如果由于密码错误或超出范围等原因导致与新网络的连接失败,则设备将无法建立任何网络连接。因此,我只想有一种方法,使我能够在连接到新网络的目标失败时重新获得以前的连接。

更新:

关于@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);

听起来像是一个逻辑问题。

为什么不跟踪最后一个成功的netId?如果新的失败->

wifiManager.enableNetwork(lastGoodNetId, true);

最新更新