투케이2K

913. (Android/Java) [유틸 파일] isInstallApp : 특정 앱 설치 여부 확인 - PackageInfo 본문

Android

913. (Android/Java) [유틸 파일] isInstallApp : 특정 앱 설치 여부 확인 - PackageInfo

투케이2K 2024. 12. 5. 21:14

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

 

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

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 기술 및 구분 : 유틸 파일 / 앱 설치 확인 / PackageInfo

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






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


  // -----------------------------------------------------------------------------------------
  // TODO [SEARCH FAST] : [RETURN] isInstallApp : 특정 앱 설치 여부 확인
  // -----------------------------------------------------------------------------------------
  public static boolean isInstallApp(Context mContext, String packageName) {

      /**
        * // -----------------------------------------
        * [isInstallApp 메소드 설명]
        * // -----------------------------------------
        * 1. 특정 앱 설치 여부 확인
        * // -----------------------------------------
        * 2. 호출 방법 : C_App.isInstallApp(A_Main.this, "com.example.kotlinproject");
        * // -----------------------------------------
        * 3. 리턴 데이터 : 설치된 경우 true / 없는 경우 false
        * // -----------------------------------------
        * 4. 필요 설정 : AndroidManifest.xml 파일
        *
        * <queries>
        *    <package android:name="com.example.kotlinproject" />
        * </queries>
        * // -----------------------------------------
        * */


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


      // [로직 처리 실시]
      try {
          
          // [인풋 데이터 널 체크]
          if (mContext != null && C_Util.stringNotNull(packageName) == true){

              try {

                  // [PackageInfo 선언]
                  PackageInfo pi = null;

                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
                      pi = mContext.getPackageManager().getPackageInfo(packageName, PackageManager.PackageInfoFlags.of((long) 0));
                  }
                  else {
                      pi = mContext.getPackageManager().getPackageInfo(packageName, 0);
                  }

                  ApplicationInfo appInfo = pi.applicationInfo;

                  M_LOG += "\n" + "packageName : " + String.valueOf(packageName);
                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                      M_LOG += "\n" + "minSdkVersion : " + String.valueOf(appInfo.minSdkVersion);
                  }
                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
                      M_LOG += "\n" + "compileSdkVersion : " + String.valueOf(appInfo.compileSdkVersion);
                  }

                  returnData = true;
              }
              catch (Exception eq){
                  eq.printStackTrace();
                  M_LOG = "[Exception] : " + String.valueOf(eq.getMessage());
              }

          }
          else {
              M_LOG = "[Error] : Input Data Is Null";
          }

      } catch (Exception e) {
          S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
      }


      // [로그 출력 실시]
      ///*
      // ===============================================================
      S_Log._D_("특정 앱 설치 여부 확인", new String[]{
              "M_LOG :: " + String.valueOf(M_LOG),
              "RETURN :: " + String.valueOf(returnData)
      });
      // ===============================================================
      // */


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

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






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

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: C_App.isInstallApp]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 특정 앱 설치 여부 확인]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: 
    packageName : com.example.kotlinproject
    minSdkVersion : 21
    compileSdkVersion : 33]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: true]
D///===========//: ================================================

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

 

반응형
Comments