Notice
Recent Posts
Recent Comments
Link
투케이2K
539. (kotlin/코틀린) [안드로이드 10 미만] 안드로이드 하위 버전 빌드 수행 및 WifiConfiguration 사용해 WPA , WPA2 와이파이 연결 수행 본문
Kotlin
539. (kotlin/코틀린) [안드로이드 10 미만] 안드로이드 하위 버전 빌드 수행 및 WifiConfiguration 사용해 WPA , WPA2 와이파이 연결 수행
투케이2K 2024. 12. 24. 17:08[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Java / Kotlin
- 개발 툴 : AndroidStudio
- 기술 및 구분 : WifiConfiguration / Wifi Connection / WPA , WPA2
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
try {
// ---------------------------------------------------------------
// TODO [사전] : 해당 연결하려는 와이파에 이미 연결 된 상태 인 지 확인 필요
// ---------------------------------------------------------------
// TODO [사전] : 와이파이 기능이 활성화 된 상태 필요
// ---------------------------------------------------------------
// TODO [사전] : Manifest.permission.ACCESS_FINE_LOCATION 위치 권한 상태 부여 필요
// ---------------------------------------------------------------
// TODO [설명] : 자체 기기 설정 앱으로 구글 스토어 미출 시 >> 강제 빌드 버전 하위 변경 후 해당 코드 적용 (TargetSdk 22)
// ---------------------------------------------------------------
// TODO [Wifi 연결에 필요한 SSID , PW 정의 수행]
val ssid = "TWOK"
val password = "t0123456789"
// TODO [WifiConfiguration 객체 생성]
val wifiConfiguration = WifiConfiguration()
// TODO [초기 clear 작업 진행]
wifiConfiguration.allowedAuthAlgorithms.clear()
wifiConfiguration.allowedGroupCiphers.clear()
wifiConfiguration.allowedKeyManagement.clear()
wifiConfiguration.allowedPairwiseCiphers.clear()
wifiConfiguration.allowedProtocols.clear()
// TODO [와이파이 연결 정보 설정 수행] : [WPA, WPA2 옵션]
wifiConfiguration.SSID = "\"" + ssid + "\"" // 연결하고자 하는 SSID
wifiConfiguration.priority = 40
wifiConfiguration.status = WifiConfiguration.Status.DISABLED
wifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN)
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP)
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP)
wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK)
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP)
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP)
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA)
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN)
wifiConfiguration.preSharedKey = "\"" + password + "\"" // [연결하고자 하는 PW]
val wifiManager = applicationContext.getSystemService(WIFI_SERVICE) as WifiManager
if (wifiManager.wifiState != WifiManager.WIFI_STATE_ENABLED) {
wifiManager.isWifiEnabled = true
}
// TODO [연결 추가]
val wifiId = wifiManager.addNetwork(wifiConfiguration)
// TODO [연결 상태 확인]
if (wifiId != -1) {
wifiManager.enableNetwork(wifiId, true)
S_Log._W_("WifiConfiguration :: Connection Wifi", null)
} else {
S_Log._E_("WifiConfiguration :: Connection Fail", null)
}
} catch (e: Exception) {
e.printStackTrace()
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Java - [targetSdk 22] 안드로이드 하위 버전 빌드 수행 및 WifiConfiguration 사용해 WPA , WPA2 와이파이 연결 수행]
https://blog.naver.com/kkh0977/223554794953?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'Kotlin' 카테고리의 다른 글
Comments