=====안드로이드 wifi settings에서 환경 설정==============
# cat wpa_supplicant.conf
ctrl_interface=wlan0
update_config=1
network={
ssid="WiFi Test"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
#
===========================================
======제가 아래와 같이 소스 코팅해서 결과를 보면 ======
# cat wpa_supplicant.conf
ctrl_interface=wlan0
update_config=1
#
===============================================
mWifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
WifiConfiguration config = new WifiConfiguration();
config.allowedGroupCiphers.set(GroupCipher.TKIP); config.allowedGroupCiphers.set(GroupCipher.CCMP); config.allowedKeyManagement.set(KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers.set(PairwiseCipher.CCMP); config.allowedPairwiseCiphers.set(PairwiseCipher.TKIP); config.allowedProtocols.set(Protocol.WPA);
config.SSID = "WiFi Test";
config.allowedKeyManagement.set(KeyMgmt.WPA_PSK);
String password = "12345678";
if (password.matches("[0-9A-Fa-f]{64}")) {
config.preSharedKey = password;
} else {
config.preSharedKey = '"' + password + '"';
}
config.networkId = mWifiManager.addNetwork(config);
mWifiManager.saveConfiguration();
mWifiManager.setWifiEnabled(true);
}
다운힐님 좋은 지적 감사 드립니다.
wifi 연결 흐름을 다시 한번 상기해 주시는 군요.
그런데 의문스러운 것은
만일 SSID: WiFi 이고 Password: "12345" Security: WPA/WPA2 PSK 이다면
일반적으로는 Password을 입력해야지 wpa_supplicant.conf에 Network가 등록이 되어 그걸 바탕으로 Wifi 연결이 되잖아요.
그런데 특정 어플에서 그 SSID, 패스워드를 강제적으로 써주어 wpa_supplicant.conf 에 Network가 등록이 되게 하면
어플이 자동 Wi-Fi 연결이 될 것 같은데...
쉬운 방법이 없을까요?
위 방법을 다해주려니 까다로와서~~~-.-;;;;




예전에 비슷한 작업을 했었는데, startScan, getScanResults 와 getConfiguredNetworks 의 결과를 가지고, (configured에 없으면) addNetwork 또는 (configured에 있으면) updateNetwork 을 사용한 다음 enableNetwork 을 하면 접속 되었습니다, configured 에 있는 항목을 또 addNetwork 하면 wifi 목록에 중복됬던걸로....
wpa,wep 등 접속 방법은 웹사이트 stackoverflow에 나온 답 중 하나를 썼던것으로 기억하네요