투케이2K

515. (Android/Java) [android 12 / target 31] [유틸 파일] getWifiScanResult : 와이파이 스캔 목록 확인 (wifi scan) 본문

Android

515. (Android/Java) [android 12 / target 31] [유틸 파일] getWifiScanResult : 와이파이 스캔 목록 확인 (wifi scan)

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

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

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

        /**
         * -------------------------------------------
         * [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
         * -------------------------------------------
         * */


        // [출력 변수 선언]
        String LogData = "";
        int count = 0;
        List<HashMap<String, Object>> list = 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 = new ArrayList<>();

                WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
                List<ScanResult> scanResultList = wifiManager.getScanResults();

                for (ScanResult result : scanResultList) {

                    HashMap<String, Object> map = new HashMap<>();
                    map.put("SSID", result.SSID);
                    map.put("BSSID", result.BSSID);
                    //map.put("capabilities", result.capabilities);

                    list.add(map);

                }

                count = list.size();
            }

        }
        catch (Exception e){
            e.printStackTrace();
            LogData = e.getMessage();
        }


        // [로그 출력 실시]
        S_Log.ltd("================================================");
        S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 와이파이 스캔 목록 확인]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[LOG :: "+String.valueOf(LogData)+"]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[COUNT :: "+String.valueOf(count)+"]");
        S_Log.cnt("-----------------------------------------");
        S_Log.cnt("[LIST :: "+String.valueOf(list)+"]");
        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