关于Android Wifi NetworkId的一些理解。

最近在做一个需求,在连接成功一个Wifi后,此时再去连接第二个Wifi,这时无论第二个wifi是否连接成功,都不能再去自动连接第一个Wifi.也就是说我需要在连接第二个的过程中去把第一个Wifi的密码忘记。

WifiManager有一个.forget(netId, listener)的方法是用来忘记密码的。这个时候第一个参数为networkId,也就是说我需要获取到已连接wifi的networkId,根据这个来去忘记密码。



但是networkId是怎么样的一个参数呢,如果该网络从没有连接过,也就是没有在WifiConfigtion中存储信息,那么他是不存在网络号的,假如这个时候我连接一个网络,并且连接成功,这里我有研究了一下,并不是连接成功才有网络号,而是连接就会有网络号,简单点讲,就是无论密码输错或者输对,都会存在网络号。那么这个网络号从0开始,往后每连接一个网络号+1,如果此时断开以保存的任何一个网络,再连接的网络的网络号一定是从当前以保存的网络号的最大值进行累加的,例如,我现在以保存,以及已连接网络数总共有4个,那么最大的那个网络号为3,这时再去连接一个一个新的网络,那么分配给他的网络号为4,如果我们断开了网络号为4的这个网络,这个时候再去连接一个新的网络,那么这个新的网络的网络号还是4.

对这个的理解可以帮我们去做自动让上一个网络忘记密码这个操作。

你可能感兴趣的:(Android,每日一记-Android)