[英]Android improperly forgets wireless networks
我编写了一个应用程序,可以轻松地将 Android 设备连接到我们公司的各种无线网络。 它旨在运行一次,当设备开箱并使用我们应用程序套件的 rest 进行设置时。
问题是有时,设备会在没有被告知这样做的情况下忘记网络。 不幸的是,我无法重现这一点。 我希望我错过了一些 API 呼叫,这里的 Android 专家可以帮助我找到。
以下代码来自我的一次性无线初始化应用程序,其中网络名称和密钥已更改。 谁能看到我在这里做错了什么?
编辑:我观察到这种行为的设备是 LG Ally。 我希望这是我自己的代码的错误,所以这就是我开始的地方。
@Override
public void onCreate(Bundle savedInstanceState)
{
WifiConfiguration n1Config = new WifiConfiguration();
n1Config.SSID = "\"networkOne\"";
n1Config.preSharedKey = "\"...\"";
n1Config.status = WifiConfiguration.Status.ENABLED;
WifiConfiguration n2Config = new WifiConfiguration();
n2Config.SSID = "\"networkTwo\"";
n2Config.hiddenSSID = true;
n2Config.wepKeys[0] = "...";
n2Config.wepTxKeyIndex = 0;
n2Config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
n2Config.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
n2Config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
n2Config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
n2Config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
n2Config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
n2Config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
n2Config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
n2Config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
n2Config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
n2Config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
n2Config.status = WifiConfiguration.Status.ENABLED;
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
int n1ID = wifiManager.addNetwork(n1Config);
wifiManager.enableNetwork(n1ID, false);
int n2ID = wifiManager.addNetwork(n2Config);
wifiManager.enableNetwork(n2ID, false);
}
我相信你需要调用 wifi.saveConfiguration(); 在将两个配置都添加到 WifiManager 之后。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.