お世話になります。
過去一度でも接続したwifiについて接続する方法は以下で可能でした。
WifiManager.enableNetwork(k.networkId, true);
しかし、上記関数enableNetworkは過去接続したidとpassを見る為、パスの入力がtrueになっています。
wifiのssidとパスをユーザから取得した上で
wifiに初回接続する具体的プログラムについてご教授の程宜しくお願いします。
すごくわかりやすくいえば
上記ではパスを入力していません。
idとPASSを入力してwifiに接続するプログラムを教えてください。
String netSSIDNotQuote = String.format("\"%s\"", netSSID); WifiManager MyConnectWifiManager = (WifiManager) getSystemService (Context.WIFI_SERVICE); WifiInfo info = MyConnectWifiManager.getConnectionInfo (); MyConnectWifiManager.setWifiEnabled(true); List<WifiConfiguration> list = MyConnectWifiManager.getConfiguredNetworks(); for( WifiConfiguration i : list ) { if(i.SSID != null && i.SSID.equals(netSSIDNotQuote)) { MyConnectWifiManager.disconnect(); MyConnectWifiManager.enableNetwork(i.networkId, true); MyConnectWifiManager.reconnect();
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); String ssidWpaWpa2Psk = "xxxxx"; String targetSSID = "xxxxx"; WifiConfiguration config = new WifiConfiguration(); config.SSID = "\"" + ssidWpaWpa2Psk + "\""; config.allowedProtocols.set(WifiConfiguration.Protocol.RSN); config.allowedProtocols.set(WifiConfiguration.Protocol.WPA); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.preSharedKey = "\"xxxxxxxxxxxx\""; //ネットワークIDを取得する 成功は0 失敗は-1 int networkId = wifiManager.addNetwork(config); wifiManager.saveConfiguration(); wifiManager.updateNetwork(config); //WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); //int networkId = 0; // 上記設定で取得できたものを使用 //String targetSSID = "xxxxx"; // 例外処理 WiFi機能が無効の状態で呼び出されるとSSID検索の所でnullとなる try { // ssidの検索を開始 wifiManager.startScan(); for (ScanResult result : wifiManager.getScanResults()) { // Android4.2以降よりダブルクォーテーションが付いてくるので除去 String resultSSID = result.SSID.replace("\"", ""); if (resultSSID.equals(targetSSID)) { // ユーザが入力したIDと検索したIDが同一だった為、接続を開始する if (networkId > 0) { // 先に既存接続先を無効にしてから接続します for (WifiConfiguration c0 : wifiManager.getConfiguredNetworks()) { wifiManager.enableNetwork(c0.networkId, false); } wifiManager.enableNetwork(networkId, true); } break; } } } catch (NullPointerException e) { // 例外処理 Toast ts = Toast.makeText(login.this, "ERROR WiFi機能が無効の状態で呼び出されています。", Toast.LENGTH_SHORT); ts.setGravity(Gravity.CENTER, 0, 0); ts.show(); }

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/14 11:50
退会済みユーザー
2016/10/14 11:52
2016/10/14 11:58
退会済みユーザー
2016/10/17 02:34
2016/10/17 02:40
退会済みユーザー
2016/10/17 05:41
2016/10/17 06:15
退会済みユーザー
2016/10/17 16:32 編集