투케이2K

697. (Android/Java) [In App Update : 인앱 업데이트] AppUpdateManager 사용해 구글 플레이스토어 앱 업데이트 가능 여부 확인 본문

Android

697. (Android/Java) [In App Update : 인앱 업데이트] AppUpdateManager 사용해 구글 플레이스토어 앱 업데이트 가능 여부 확인

투케이2K 2023. 11. 24. 20:32

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

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

            /**
             * -----------------------------------------------
             * [기능 구현 설명]
             * -----------------------------------------------
             * 1. AppUpdateManager : 인앱 업데이트 기능을 수행할 수 있는 앱 업데이트 매니저 입니다
             * -----------------------------------------------
             * 2. AppUpdateManager 기능을 사용해 인앱 업데이트를 수행하기 위해서는 (구글 플레이스토어) 에 정상적으로
             *    앱이 배포 되어 있는 상태여야 합니다
             * -----------------------------------------------
             * 3. 필요 라이브러리 : [프로젝트 구성 소스코드 여부에 따라서 Java 및 Kotlin 선택 필요]
             * 
             * implementation 'com.google.android.play:app-update:2.0.1' // [Select Java]
             * implementation 'com.google.android.play:app-update-ktx:2.0.1' // [Select Kotlin]
             * -----------------------------------------------
             * 4. 참고 사이트 :
             *
             * https://developer.android.com/guide/playcore/in-app-updates/kotlin-java?hl=ko
             * -----------------------------------------------
             * */


            // [AppUpdateManager 인스턴스 생성]
            AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(A_Intro.this);


            // [앱 업데이트를 확인하는데 사용되는 Task<AppUpdateInfo> 선언]
            Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();


            // [이벤트 리스너를 사용해 앱 업데이트 가능 상태 확인]
            appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
                S_Log._D_("appUpdateInfoTask :: addOnSuccessListener", new String[]{
                        appUpdateInfo.toString()
                });

                // [업데이트할 앱 버전이 있는 경우] : [Playstore 에 새 업데이트가 있고 기기의 현재 앱 버전이 Playstore 의 앱 버전보다 낮은 경우 true 리턴]
                if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE) {
                    
                    // [추가 로직 처리 필요]

                }
            }).addOnFailureListener(error -> {
                S_Log._E_("appUpdateInfoTask :: addOnFailureListener", new String[]{
                        error.getMessage()
                });

            }).addOnCompleteListener(command -> {
                S_Log._D_("appUpdateInfoTask :: addOnCompleteListener", new String[]{
                        "isComplete :: " + String.valueOf(command.isComplete())
                });

            });

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

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro.lambda$onCreate$2(A_Intro.java:352)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2023-11-24 09:09:38 금요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: appUpdateInfoTask :: addOnCompleteListener]
I/: ----------------------------------------------------
I/: [LOG :: isComplete :: true]
D///===========//: ================================================

 

반응형
Comments