Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 失去网络连接后如何恢复网络连接?_Android_Android Wifi_Android Networking - Fatal编程技术网

Android 失去网络连接后如何恢复网络连接?

Android 失去网络连接后如何恢复网络连接?,android,android-wifi,android-networking,Android,Android Wifi,Android Networking,我正在开发一款android应用程序,能够通过它连接到WiFi网络,一切正常,我正在创建可用WiFi网络列表,其中一个用户将建立连接,以下方法用于建立连接: int netId; boolean disableOthers; wifiManager.enableNetwork(netId, disableOthers); 现在我有两个场景: 第一个是将disableOthers设置为true,这将禁用连接的网络,以便与所述网络建立连接。 第二种方法是将disableOthers设置为false

我正在开发一款android应用程序,能够通过它连接到WiFi网络,一切正常,我正在创建可用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);

听起来是个合乎逻辑的问题

为什么不记录最后一个成功的netId呢?如果新建失败->


wifiManager.enableNetworklastGoodNetId,true

听起来是个合乎逻辑的问题。为什么不记录最后一个成功的netId呢?如果新建失败->wifiManager.enableNetworklastGoodNetId,true@B我真的不知道我是怎么错过的,非常感谢你解决了我的问题,你可以自由添加答案