투케이2K

674. (Android/Java) packageInfo.firstInstallTime 사용해 특정 앱 최초 설치 날짜 확인 - app install date 본문

Android

674. (Android/Java) packageInfo.firstInstallTime 사용해 특정 앱 최초 설치 날짜 확인 - app install date

투케이2K 2023. 10. 26. 11:55

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] appInstallFirstTime : 특정 앱 최초 설치 시점 시간 확인
    // -----------------------------------------------------------------------------------------
    public static String appInstallFirstTime(Context mContext, final String packageNames){

        /**
         * // -----------------------------------------
         * [appInstallFirstTime 메소드 설명]
         * // -----------------------------------------
         * 1. 특정 앱 최초 설치 시점 시간 확인
         * // -----------------------------------------
         * 2. 호출 방법 : C_App.appInstallFirstTime(A_Main.this, "com.test.app");
         * // -----------------------------------------
         * 3. 로 직 : 조건 체크 수행 후 앱 대상 확인 및 최초 시간 확인 시 >> 2023-03-01 21:50:51
         * // -----------------------------------------
         * 4. TODO [중요] AndroidManifest.xml 파일에서 queries >> package 등록 필요
         * // -----------------------------------------
         * */


        // [리턴 변수 선언]
        String returnData = "";
        String M_LOG = "";


        // [사전 패키지 명이 널인지 체크 실시]
        if (C_Util.stringNotNull(packageNames) == true){

            // [외부앱이 설치되었는지 확인]
            try {

                // [특정 패키지 명이 앱에 설치 되어 있는지 확인]
                Intent existPackage = mContext.getPackageManager().getLaunchIntentForPackage(packageNames);

                if (existPackage != null) { // [설치 되어 있는 경우]

                    PackageInfo packageInfo = mContext.getPackageManager().getPackageInfo(packageNames, PackageManager.GET_PERMISSIONS);

                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                    M_LOG = "[appInstallFirstTime] :: [Success] :: App Install File Found";
                    returnData = dateFormat.format( new Date( packageInfo.firstInstallTime ) );

                }
                else { // [설치 되지 않은 경우]
                    M_LOG = "[appInstallFirstTime] :: [Error] :: App Install Not Found";
                }
            }
            catch (ActivityNotFoundException e) {
                // [이동할 패키지 명을 찾이 못한 경우]
                M_LOG = "[appInstallFirstTime] :: [ActivityNotFoundException] :: " + String.valueOf(e.getMessage());
            }
            catch (Exception e){
                M_LOG = "[appInstallFirstTime] :: [Exception] :: " + String.valueOf(e.getMessage());
            }

        }
        else { // [패키지 명이 널인 경우]
            M_LOG = "[appInstallFirstTime] :: [Error] :: Input PackageName Is Null";
        }


        // [로그 출력 실시]
        // ===============================================================
        S_Log._D_("특정 앱 최초 설치 시점 시간 확인", new String[]{
                "INPUT :: " + String.valueOf(packageNames),
                "M_LOG :: " + String.valueOf(M_LOG),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================


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

[결과 출력]

 

================================================
[LOG :: CLASS PLACE :: com.example.javaproject.C_App.appInstallFirstTime(C_App.java:9219)]
----------------------------------------------------
[LOG :: NOW TIME :: 2023-10-26 11:50:53 목요일]
----------------------------------------------------
[LOG :: DESCRIPTION :: 특정 앱 최초 설치 시점 시간 확인]
----------------------------------------------------
[LOG :: INPUT :: com.app.manager]
----------------------------------------------------
[LOG :: M_LOG :: [appInstallFirstTime] :: [Success] :: App Install File Found]
----------------------------------------------------
[LOG :: RETURN :: 2023-03-01 21:50:51]
================================================

 

반응형
Comments