Android неправильно забывает беспроводные сети - PullRequest
0 голосов
/ 29 апреля 2011

Я написал приложение для простого подключения устройств Android к различным беспроводным сетям нашей компании. Он предназначен для запуска один раз, когда устройство распаковано и настроено с остальной частью нашего набора приложений.

Проблема в том, что иногда устройство забывает о сетях без предупреждения об этом. Я не смог воспроизвести это, к сожалению. Я надеюсь, что пропустил какой-то вызов API, который гуру Android здесь могут помочь мне найти.

Код, приведенный ниже, взят из моего приложения для беспроводной инициализации с однократным запуском, с изменениями сетевых имен и ключей. Кто-нибудь может увидеть что-то, что я делаю здесь неправильно?

Edit: устройство, на котором я наблюдал это поведение, является союзником LG. Я надеюсь, что это ошибка моего собственного кода, вот с чего я и начинаю.

@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);
}

1 Ответ

2 голосов
/ 29 апреля 2011

Я полагаю, вам нужно вызвать wifi.saveConfiguration ();после того, как вы добавили обе свои конфигурации в WifiManager.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...