0

だから私はこことグーグルが私を連れて行く他の場所のすべてのスレッドを真にトロールしました。しかし、それでもWPAPSKネットワークへの接続に問題があります。これが私のコードです。SSIDとPSKを読み取る2つのedittextフィールドと、SSIDを非表示にするかどうかを選択するための1つのチェックボックスがあります。

    EditText mSSID = (EditText) findViewById(R.id.wifiTVssidcurrent);
    String networkSSID = mSSID.getText().toString();
    EditText mWPA = (EditText) findViewById(R.id.wifiTVwpacurrent);
    String networkWPA = mWPA.getText().toString();

    // Update text to show that connection is pending
    TextView wifiStatus = (TextView) findViewById(R.id.wifiTVconnectionstatus);
    wifiStatus.setText("Connecting to " + networkSSID);

    WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    WifiConfiguration wc = new WifiConfiguration(); 
    wc.SSID = "\"".concat(networkSSID).concat("\""); 
    wc.preSharedKey  = "\"".concat(networkWPA).concat("\"");

    CheckBox mSSIDHidden = (CheckBox) findViewById(R.id.wifiCBhiddenssid);
    wc.hiddenSSID = false;
    if (mSSIDHidden.isChecked()) {
        wc.hiddenSSID = true;
    }
    wc.status = WifiConfiguration.Status.ENABLED;         
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); 
    wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); 
    wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); 
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); 
    wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); 
    wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
    int res = wifi.addNetwork(wc); 
    Log.d("WifiPreference", "add Network returned " + res ); 
    boolean b = wifi.enableNetwork(res, true);         
    Log.d("WifiPreference", "enableNetwork returned " + b );
    boolean c = wifi.reconnect();
    Log.d("WifiPreference", "reconnect returned " + c );

これを実行した後に電話で表示されるのは、APが設定で作成されているが、接続されていないことです。また、作成したAPを後で設定から手動で使用しようとすると、接続できなくなります。しかし、設定内からAPを作成すると、必要に応じて接続が確立されます。

SSIDとWPAPSKを入れることに関しては、私は両方の "\" ".concat(networkSSID).concat(" \ "");を試しました。および"\"" + networkSSID + "\" "; 同じ結果になります。

ヒントは大歓迎です。よろしくラッセ

4

1 に答える 1

4

OS によって作成された設定を読み取る方法を提案してくれた Ryan に再び感謝します。

だから私はスタックオーバーフローでここで提案されたすべてを試したと思った. しかし、このスレッドは実際に最終的に私を助けましたAndroidタブレットでWPAセキュリティを使用してwifiをプログラムでセットアップする 私の場合、追加する必要があることが判明しました WPA をセットアップしていますが、allowedGroupCiphers WEP40 と WEP104 を追加する必要がありました。

`wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN); //So I also added 
 wc.allowedProtocols.set(WifiConfiguration.Protocol.WPA);`
于 2012-03-28T12:17:05.280 に答える