1

私はAndroidJavaの完全な初心者で、 C++と少しの C# を使用してきました。Wifiネットワークに接続するシンプルなAndroidアプリを作成しようとしています。問題は、 addNetwork()関数でクラッシュすることです。

import android.net.ConnectivityManager;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        final WifiConfiguration wc = new WifiConfiguration();        
        String networkSSID = "********";
        String networkPass = "*******";      
        wc.SSID = "\"" + networkSSID + "\""; 
        wc.preSharedKey = "\""+ networkPass +"\"";
        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);
        wifi.enableNetwork(res, true);
        wifi.setWifiEnabled(true);
        ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 

    }
    }

私は、Android のターゲット 2.3.3 バージョンのプロジェクトで Eclipse に取り組んでいます (私の電話は 2.3.6 です)。ここにあるインポート以外のファイル (MainActivity.java) を含める必要がありますか?

編集:この回答にあるこの質問への回答。私の追加の質問への回答 (私のネットワークのリストには対応する SSID が追加されていましたが、101% 確信しているときに「範囲外」でした。それが私のルーターだからです! 何がうまくいかなかったのか知っていますか? ) および Wi-Fi 接続の完全なハウツーはこちら.

4

2 に答える 2