투케이2K

473. (Android/Java) [android 12 / target 31] [유틸 파일] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시 본문

Android

473. (Android/Java) [android 12 / target 31] [유틸 파일] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시

투케이2K 2023. 2. 10. 18:30

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시
    // -----------------------------------------------------------------------------------------
    public static void wifi_Info_Print(Context mContext) {

        /**
         * // -----------------------------------------
         * [wifi_Info_Print 메소드 설명]
         * // -----------------------------------------
         * 1. wifi_Info_Print : 현재 연결된 와이파이 정보 출력 실시
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         *   C_App.wifi_Info_Print(A_Intro.this);
         *
         * // -----------------------------------------
         * 3. 필요 퍼미션 :
         *
         * <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
         * <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
         * // -----------------------------------------
         * */


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

            // [현재 와이파이 연결된 상태 체크]
            if(C_StateCheck.isWifiConnected(mContext) == true){


                // [Android 12 이상 분기 처리]
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S){

                    //*
                    // [ConnectivityManager 생성]
                    ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
                    NetworkRequest networkRequest = new NetworkRequest.Builder()
                            .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
                            .build();

                    // [와이파이 정보 확인]
                    ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback(ConnectivityManager.NetworkCallback.FLAG_INCLUDE_LOCATION_INFO) {
                        @Override
                        public void onAvailable(Network network) {
                            super.onAvailable(network);
                        }
                        @Override
                        public void onCapabilitiesChanged(Network network, NetworkCapabilities net) {

                            // [와이파이 정보 확인]
                            WifiInfo wifiInfo = (WifiInfo) net.getTransportInfo();

                            String getSsid = String.valueOf(wifiInfo.getSSID().replaceAll("[\"]",""));

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

                            String getBSSID = String.valueOf(wifiInfo.getBSSID().trim());

                            // [로그 출력]
                            S_Log.ltd("================================================");
                            S_Log.cnt("["+ACTIVITY_NAME+" >> wifi_Info_Print :: [HIGHT] 현재 연결된 와이파이 정보 출력 실시]");
                            S_Log.cnt("-----------------------------------------");
                            S_Log.cnt("[getSsid :: "+String.valueOf(getSsid)+"]");
                            S_Log.cnt("-----------------------------------------");
                            S_Log.cnt("[getIpAddress :: "+String.valueOf(getIpAddress)+"]");
                            S_Log.cnt("-----------------------------------------");
                            S_Log.cnt("[getBSSID :: "+String.valueOf(getBSSID)+"]");
                            S_Log.lbd("================================================");
                        }
                    };
                    cm.requestNetwork(networkRequest, networkCallback);
                    // */
                }
                else {

                    // [와이파이 정보 확인]
                    WifiManager wifimanager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
                    WifiInfo wifiInfo = wifimanager.getConnectionInfo();

                    DhcpInfo dhcpInfo = wifimanager.getDhcpInfo();
                    int wIp = dhcpInfo.ipAddress;

                    String getSsid = wifiInfo.getSSID();
                    getSsid = getSsid.replaceAll("[\"]","");

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

                    String getBSSID = wifiInfo.getBSSID();
                    getBSSID = getBSSID.trim();

                    // [로그 출력]
                    S_Log.ltd("================================================");
                    S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: [LOW] 현재 연결된 와이파이 정보 출력 실시]");
                    S_Log.cnt("-----------------------------------------");
                    S_Log.cnt("[getSsid :: "+String.valueOf(getSsid)+"]");
                    S_Log.cnt("-----------------------------------------");
                    S_Log.cnt("[getIpAddress :: "+String.valueOf(getIpAddress)+"]");
                    S_Log.cnt("-----------------------------------------");
                    S_Log.cnt("[getBSSID :: "+String.valueOf(getBSSID)+"]");
                    S_Log.lbd("================================================");
                }
            }
            else {
                S_Log.lte("================================================");
                S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 현재 연결된 와이파이 정보 출력 실시]");
                S_Log.cnt("-----------------------------------------");
                S_Log.cnt("[error :: wifi is not connected]");
                S_Log.lbe("================================================");
            }

        } catch (Exception e) {
            e.printStackTrace();
            S_Log.lte("================================================");
            S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 현재 연결된 와이파이 정보 출력 실시]");
            S_Log.cnt("-----------------------------------------");
            S_Log.cnt("[exception :: "+String.valueOf(e.getMessage())+"]");
            S_Log.lbe("================================================");
        }
    }
 

[결과 출력]

 

D///===========//: ================================================
I/: [C_App >> wifi_Info_Print :: [HIGHT] 현재 연결된 와이파이 정보 출력 실시]
I/: -----------------------------------------
I/: [getSsid :: twok]
I/: -----------------------------------------
I/: [getIpAddress :: 192.168.0.10]
I/: -----------------------------------------
I/: [getBSSID :: 88:36:6c:1f:27:4e]
D///===========//: ================================================

 

반응형
Comments