Notice
Recent Posts
Recent Comments
Link
투케이2K
843. (Android/Java) [targetSdk 22] 안드로이드 하위 버전 빌드 수행 및 WifiConfiguration 사용해 WPA , WPA2 와이파이 연결 수행 본문
Android
843. (Android/Java) [targetSdk 22] 안드로이드 하위 버전 빌드 수행 및 WifiConfiguration 사용해 WPA , WPA2 와이파이 연결 수행
투케이2K 2024. 8. 20. 21:10[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / Kotlin
[소스 코드]
try {
// ---------------------------------------------------------------
// TODO [사전] : 해당 연결하려는 와이파에 이미 연결 된 상태 인 지 확인 필요
// ---------------------------------------------------------------
// TODO [사전] : 와이파이 기능이 활성화 된 상태 필요
// ---------------------------------------------------------------
// TODO [사전] : Manifest.permission.ACCESS_FINE_LOCATION 위치 권한 상태 부여 필요
// ---------------------------------------------------------------
// TODO [설명] : 자체 기기 설정 앱으로 구글 스토어 미출 시 >> 강제 빌드 버전 하위 변경 후 해당 코드 적용 (TargetSdk 22)
// ---------------------------------------------------------------
// TODO [네트워크 연결 변수 선언]
String ssid = "TWOK";
String password = "t0123456789";
// TODO [WPA, WPA2 옵션] : [와이파이 연결 수행]
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = "\"" + String.valueOf(ssid) + "\""; // 연결하고자 하는 SSID
wifiConfiguration.status = WifiConfiguration.Status.DISABLED;
wifiConfiguration.priority = 40;
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wifiConfiguration.preSharedKey = "\"".concat(String.valueOf(password)).concat("\""); // 비밀 번호
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
if (wifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
wifiManager.setWifiEnabled(true);
}
if (ActivityCompat.checkSelfPermission(A_Intro.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
// TODO [연결 추가]
int wifiId = wifiManager.addNetwork(wifiConfiguration);
/*
List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
S_Log._D_("WifiConfiguration :: getConfiguredNetworks", new String[]{String.valueOf(list)});
// */
// TODO [연결 상태 확인]
if (wifiId != -1) {
wifiManager.enableNetwork(wifiId, true);
S_Log._W_("WifiConfiguration :: Connection Wifi", null);
}
else {
S_Log._E_("WifiConfiguration :: Connection Fail", null);
}
}
catch (Exception e){
e.printStackTrace();
}
[결과 출력]
W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro$1.onClick(A_Intro.java:372)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-08-20 13:23:08 화요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: WifiConfiguration :: Connection Wifi]
W///===========//: ================================================
반응형
'Android' 카테고리의 다른 글
Comments