투케이2K

783. (Android/Java) [유틸 파일] isSimulatorRunning : 앱 시뮬레이터 동작 상태 체크 본문

Android

783. (Android/Java) [유틸 파일] isSimulatorRunning : 앱 시뮬레이터 동작 상태 체크

투케이2K 2024. 4. 25. 20:25

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [isSimulatorRunning] : 앱 시뮬레이터 동작 상태 체크
    // -----------------------------------------------------------------------------------------
    public static Boolean isSimulatorRunning(Context mContext){

        /**
         * // -----------------------------------------
         * [isSimulatorRunning 메소드 설명]
         * // -----------------------------------------
         * 1. 앱 시뮬레이터 동작 상태 체크
         * // -----------------------------------------
         * 2. 호출 방법 :
         *
         *     C_StateCheck.isSimulatorRunning(A_Intro.this);
         *
         * // -----------------------------------------
         * 3. 리턴 데이터 :
         *
         * 에뮬레이터에서 동작 중인 경우 true, 실제 기기 인 경우 false
         * // -----------------------------------------
         * */


        // [리턴 변수 선언 실시]
        boolean returnData = false;
        String deviceInfo = "";


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

            // [디바이스 정보 삽입 : 로그 출력]
            deviceInfo += "\n\n";
            deviceInfo += "Build.MANUFACTURER :: " + String.valueOf(Build.MANUFACTURER.toLowerCase()) + "\n";
            deviceInfo += "Build.MODEL :: " + String.valueOf(Build.MODEL.toLowerCase()) + "\n";
            deviceInfo += "Build.HARDWARE :: " + String.valueOf(Build.HARDWARE.toLowerCase()) + "\n";
            deviceInfo += "Build.FINGERPRINT :: " + String.valueOf(Build.FINGERPRINT.toLowerCase()) + "\n";
            deviceInfo += "Build.PRODUCT :: " + String.valueOf(Build.PRODUCT.toLowerCase()) + "\n";
            deviceInfo += "Build.BOARD :: " + String.valueOf(Build.BOARD.toLowerCase()) + "\n";
            deviceInfo += "Build.DEVICE :: " + String.valueOf(Build.DEVICE.toLowerCase());
            deviceInfo += "\n\n";

            // [에뮬레이터 동작 확인]
            if (Build.MANUFACTURER.toLowerCase().trim().contains("genymotion")
                    || Build.MODEL.toLowerCase().trim().contains("sdk_gphone")
                    || Build.MODEL.toLowerCase().trim().contains("google_sdk")
                    || Build.MODEL.toLowerCase().trim().toLowerCase().contains("droid4x")
                    || Build.MODEL.toLowerCase().trim().contains("emulator")
                    || Build.MODEL.toLowerCase().trim().contains("android sdk built for x86")
                    || Build.HARDWARE.toLowerCase().trim() == "goldfish"
                    || Build.HARDWARE.toLowerCase().trim() == "vbox86"
                    || Build.HARDWARE.toLowerCase().trim().contains("nox")
                    || Build.FINGERPRINT.toLowerCase().trim().startsWith("generic")
                    || Build.PRODUCT.toLowerCase().trim() == "sdk"
                    || Build.PRODUCT.toLowerCase().trim() == "google_sdk"
                    || Build.PRODUCT.toLowerCase().trim() == "sdk_x86"
                    || Build.PRODUCT.toLowerCase().trim() == "vbox86p"
                    || Build.PRODUCT.toLowerCase().trim().contains("nox")
                    || Build.BOARD.toLowerCase().trim().contains("nox")
                    || Build.BOARD.toLowerCase().trim().startsWith("goldfish_")
                    || Build.DEVICE.toLowerCase().trim().startsWith("emu")
                    || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))) {

                // [리턴 변수 삽입]
                returnData = true;
            }

        }
        catch (Exception e){
            e.printStackTrace();
        }


        // [로그 출력 실시]
        //*
        // ===============================================================
        S_Log._F_(mContext, "앱 시뮬레이터 동작 상태 체크", new String[]{
                "DEVICE_INFO :: " + String.valueOf(deviceInfo),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


        // [리턴 반환 실시]
        return returnData;
    }
 

[결과 출력]

 

E///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.C_StateCheck.isSimulatorRunning(C_StateCheck.java:1875)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2024-04-25 07:51:06 목요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 앱 시뮬레이터 동작 상태 체크]
I/: ----------------------------------------------------
I/: [LOG :: DEVICE_INFO :: 
    
    Build.MANUFACTURER :: google
    Build.MODEL :: sdk_gphone64_x86_64
    Build.HARDWARE :: ranchu
    Build.FINGERPRINT :: google/sdk_gphone64_x86_64/emu64x:13/te1a.220922.012/9302419:userdebug/dev-keys
    Build.PRODUCT :: sdk_gphone64_x86_64
    Build.BOARD :: goldfish_x86_64
    Build.DEVICE :: emu64x
    
    ]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
E///===========//: ================================================

 

반응형
Comments