4

Android からワイヤレス ネットワークにプログラムで接続しようとしています。

セキュリティ タイプは WPA2、暗号化 AES です。

これは期待どおりに機能しません:

private WifiConfiguration saveWepConfig(String password, String networkSSID) {
        WifiConfiguration conf = new WifiConfiguration();
        conf.SSID = "\"" + networkSSID + "\"";
        // conf.wepKeys[0] = "\"" + password + "\"";
        conf.preSharedKey = "\"" + password + "\"";
        conf.wepTxKeyIndex = 0;
            conf.hiddenSSID = true;
        conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
        return conf;
    }

ここでパスワードを暗号化する必要がありますか? 接続を保存するだけで、接続しません。

4

2 に答える 2

8

SSIDとを設定するだけですpreSharedKey。それ以外はすべてデフォルトで WPA/WPA2 になります (非常に古いバージョンの Android には当てはまらない場合があります)。

public static void saveWpaConfig(Context context, String ssid, String passphrase)
{
    WifiConfiguration wifiConfiguration = new WifiConfiguration();
    wifiConfiguration.SSID = "\"" + ssid + "\"";
    wifiConfiguration.preSharedKey = "\"" + passphrase + "\"";

    WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
    int networkId = wifiManager.addNetwork(wifiConfiguration);
    if (networkId != -1)
    {
        wifiManager.enableNetwork(networkId, true);
        // Use this to permanently save this network
        // Otherwise, it will disappear after a reboot
        wifiManager.saveConfiguration();
    }
}
于 2015-08-28T17:28:55.607 に答える