투케이2K

227. (kotlin/코틀린) [android 12 / target 31] [유틸 파일] getWifiScanResult : 와이파이 스캔 목록 확인 (wifi scan) 본문

Kotlin

227. (kotlin/코틀린) [android 12 / target 31] [유틸 파일] getWifiScanResult : 와이파이 스캔 목록 확인 (wifi scan)

투케이2K 2023. 3. 11. 23:43

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [VOID] getWifiScanResult : 와이파이 스캔 목록 확인
        // -----------------------------------------------------------------------------------------
        fun getWifiScanResult(mContext: Context) {

            /**
             * -------------------------------------------
             * [getWifiScanResult 메소드 설명]
             * -------------------------------------------
             * 1. 와이파이 스캔 목록 확인
             * -------------------------------------------
             * 2. 호출 방식 :
             *
             * C_App.getWifiScanResult(A_Intro@this)
             *
             * -------------------------------------------
             * 3. 출력 데이터 :
             *
             * [{BSSID=0a:30:0d:c7:1d:61, SSID=KT WiFi }, {BSSID=0a:30:0d:c7:70:21, SSID=KT WiFi }]
             * -------------------------------------------
             * 4. 필요 퍼미션 : [사전에 사용자로부터 퍼미션 인증을 모두 받아야 합니다]
             *
             * Manifest.permission.ACCESS_COARSE_LOCATION,
             * Manifest.permission.ACCESS_FINE_LOCATION,
             * Manifest.permission.ACCESS_WIFI_STATE,
             * Manifest.permission.CHANGE_WIFI_STATE,
             * Manifest.permission.ACCESS_NETWORK_STATE
             * -------------------------------------------
             */


            // [출력 변수 선언]
            var LogData = ""
            var count = 0
            var list: MutableList<HashMap<String?, Any?>?>? = null


            // [로직 처리 실시]
            try {

                // [퍼미션 권한 체크 실시]
                if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_WIFI_STATE) != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CHANGE_WIFI_STATE) != PackageManager.PERMISSION_GRANTED
                    || ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED) {

                    // [퍼미션이 부여되어있지 않은 경우 종료]
                    LogData = "Permission not granted"
                }
                else {

                    // [리턴 변수에 삽입]
                    LogData = "Success Permission"

                    // [와이파이 스캔 결과 확인]
                    list = ArrayList()
                    val wifiManager = mContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
                    val scanResultList = wifiManager.scanResults
                    for (result in scanResultList) {
                        val map = HashMap<String?, Any?>()
                        map["SSID"] = result.SSID
                        map["BSSID"] = result.BSSID
                        list.add(map)
                    }
                    count = list.size
                }

            } catch (e: Exception) {
                e.printStackTrace()
                LogData = e.message.toString()
            }


            // [로그 출력 실시]
            S_Log.ltd("================================================")
            S_Log.cnt("[" + ACTIVITY_NAME + " >> " + C_Util.getNowMethod(1) + " :: 와이파이 스캔 목록 확인]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[LOG :: $LogData]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[COUNT :: $count]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[LIST :: " + list.toString() + "]")
            S_Log.lbd("================================================")
        }

[결과 출력]

 

D///===========//: ================================================
I/: [C_App >> getWifiScanResult :: 와이파이 스캔 목록 확인]
I/: -----------------------------------------
I/: [LOG :: Success Permission]
I/: -----------------------------------------
I/: [COUNT :: 2]
I/: -----------------------------------------
I/: [LIST :: [{BSSID=0a:30:0d:c7:1d:61, SSID=KT WiFi }, {BSSID=0a:30:0d:c7:70:21, SSID=KT WiFi }]]
D///===========//: ================================================

 

반응형
Comments