투케이2K

907. (Android/Java) [targetSdk 30] 안드로이드 S , 12 버전 미만 WifiManager getConnectionInfo 와이파이 정보 확인 방법 본문

Android

907. (Android/Java) [targetSdk 30] 안드로이드 S , 12 버전 미만 WifiManager getConnectionInfo 와이파이 정보 확인 방법

투케이2K 2024. 11. 29. 09:47

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java

- 개발 툴 : Android Studio

- 구분 : 간단 소스

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

    try {

        /**
        * -------------------------------------------------------
        * [요약 설명]
        * -------------------------------------------------------
        * WifiManager getConnectionInfo 메소드는 API 레벨 31에서 더 이상 사용되지 않습니다.
        * -------------------------------------------------------
        * WifiManager getConnectionInfo 메소드는 Build.VERSION_CODES S (안드로이드 12) 부터 ConnectivityManager 사용해 대체로 사용할 수 있습니다
        * -------------------------------------------------------
        * 참고 사이트 : https://developer.android.com/reference/android/net/wifi/WifiManager
        * -------------------------------------------------------
        * */

        // [WifiManager 객체 생성]
        WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

        // [안드로이드 특정 OS 범위 기기에서만 동작 되도록 지정]
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { // TODO [API 30 : Android Os 11 까지 사용 가능]

            if (wifiManager.isWifiEnabled() == true){ // TODO [활성 상태 인 경우]

                WifiInfo wifiInfo = wifiManager.getConnectionInfo();

                String ssid = wifiInfo.getSSID(); // [" " 특수 문자 내에 SSID 표시]
                String bssid = wifiInfo.getBSSID();

                int wIp = wifiInfo.getIpAddress();
                String ipAddress = String.format("%d.%d.%d.%d", (wIp & 0xff), (wIp >> 8 & 0xff), (wIp >> 16 & 0xff), (wIp >> 24 & 0xff));

                String rssi = String.valueOf(wifiInfo.getRssi());
                String networkId = String.valueOf(wifiInfo.getNetworkId());

                S_Log._W_("WifiManager :: getConnectionInfo", new String[]{
                        "ssid :: " + ssid,
                        "bssid :: " + bssid,
                        "ipAddress :: " + ipAddress,
                        "rssi :: " + rssi,
                        "networkId :: " + networkId
                });
            }
            else { // TODO [비활성 상태 인 경우]
                S_Log._E_("WifiManager :: isWifiEnabled False", null);
            }

        }
        else {
            S_Log._E_("WifiManager :: Android Os Version Error", null);
        }
    }
    catch (Exception e){
        e.printStackTrace();
    }

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------

W///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro$1.onClick(A_Intro.java:381)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-11-27 08:39:42 수요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: WifiManager :: getConnectionInfo]
I/: ----------------------------------------------------
I/: [LOG :: ssid :: "KKH"]
I/: ----------------------------------------------------
I/: [LOG :: bssid :: 36:61:0f:28:bb:86]
I/: ----------------------------------------------------
I/: [LOG :: ipAddress :: 192.168.1.124]
I/: ----------------------------------------------------
I/: [LOG :: rssi :: -60]
I/: ----------------------------------------------------
I/: [LOG :: networkId :: 2]
W///===========//: ================================================

// --------------------------------------------------------------------------------------

 

반응형
Comments