투케이2K

538. (kotlin/코틀린) [유틸 파일] getAppCompileSdkVersion : 특정 앱 Compile Sdk 버전 확인 본문

Kotlin

538. (kotlin/코틀린) [유틸 파일] getAppCompileSdkVersion : 특정 앱 Compile Sdk 버전 확인

투케이2K 2024. 12. 9. 18:48

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

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

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 기술 및 구분 : 유틸 파일 / getAppCompileSdkVersion / 특정 앱 Compile Sdk 버전 확인

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






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

// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] getAppCompileSdkVersion : 특정 앱 Compile Sdk 버전 확인
// -----------------------------------------------------------------------------------------
@RequiresApi(Build.VERSION_CODES.S)
fun getAppCompileSdkVersion(mContext: Context?, packageName: String): Int {

    /**
      * // -----------------------------------------
      * [getAppCompileSdkVersion 메소드 설명]
      * // -----------------------------------------
      * 1. 특정 앱 Compile Sdk 버전 확인
      * // -----------------------------------------
      * 2. 호출 방법 :
      *
      * if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
      *      C_App.getAppCompileSdkVersion(A_Main@this, "com.example.kotlinproject")
      * }
      * // -----------------------------------------
      * 3. 리턴 데이터 :
      *
      * build.gradle 에 설정 된 compile sdk 버전 정보 (int / ex : 33)
      * // -----------------------------------------
      * 4. 필요 설정 : AndroidManifest.xml 파일
      *
      * <queries>
      *      <package android:name="com.example.kotlinproject"></package>
      * </queries>
      * // -----------------------------------------
      */


    // [리턴 변수 선언]
    var returnData = -1
    var M_LOG = ""


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

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

                // [PackageInfo 선언]
                var pi: PackageInfo? = null
                pi = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                    mContext.packageManager.getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(0L))
                } else {
                    mContext.packageManager.getPackageInfo(packageName, 0)
                }

                val appInfo = pi!!.applicationInfo
                M_LOG += "\npackageName : $packageName"
                M_LOG += "\ncompileSdkVersion : ${appInfo.compileSdkVersion}"

                returnData = appInfo.compileSdkVersion

            } catch (eq: Exception) {
                eq.printStackTrace()
                M_LOG = "[Exception] : " + eq.message.toString()
            }

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

    } catch (e: Exception) {
        S_Log._printStackTrace_(mContext, S_FinalData.LOG_BUG_STATE, null, e)
    }


    // [로그 출력 실시]
    ///*
    // ===============================================================
    S_Log._D_("특정 앱 Compile Sdk 버전 확인", arrayOf(
        "M_LOG :: $M_LOG",
        "RETURN :: $returnData"
    ))
    // ===============================================================
    // */


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

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






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

===================================================================
[LOG :: CLASS PLACE :: C_App.getAppCompileSdkVersion]
----------------------------------------------------
[LOG :: NOW TIME :: 2024-12-08 18:15:59 일요일]
----------------------------------------------------
[LOG :: DESCRIPTION :: 특정 앱 Compile Sdk 버전 확인]
----------------------------------------------------
[LOG :: M_LOG :: 
packageName : com.example.kotlinproject
compileSdkVersion : 33]
----------------------------------------------------
[LOG :: RETURN :: 33]
===================================================================

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

 

반응형
Comments