투케이2K

432. (kotlin/코틀린) getPackageManager().canRequestPackageInstalls() 사용해 알수 없는 앱 설치 권한 부여 상태 확인 본문

Kotlin

432. (kotlin/코틀린) getPackageManager().canRequestPackageInstalls() 사용해 알수 없는 앱 설치 권한 부여 상태 확인

투케이2K 2023. 11. 7. 14:36

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [Android Oreo] : [알수 없는 앱 설치 허용 권한 부여 확인]
        // -----------------------------------------------------------------------------------------
        fun getAppInstallPermisseionEnable(mContext: Context): Boolean {

            /**
             * -------------------------------------------
             * [필요 퍼미션 설정]
             *
             * <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"></uses-permission>
             * -------------------------------------------
             * 권한 부여 확인 : getPackageManager().canRequestPackageInstalls()
             * -------------------------------------------
             * 참고 (알수 없는 앱 설치 권한 인텐트 이동) :
             *
             * Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
             * intent.setData(Uri.parse("package:" + getPackageName()));
             * startActivity(intent);
             *
             * -------------------------------------------
             */

            // [Context 지정]
            context = mContext

            // [초기 리턴 변수 선언]
            var resultData = true

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

                ///*
                resultData = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // [오레오 이상]
                    if (mContext.packageManager.canRequestPackageInstalls() == true) {
                        // ===============================================================
                        S_Log._F_(mContext, "Android Oreo 오레오 이상 >> 앱 설치 권한 부여 확인", null)
                        // ===============================================================

                        // [리턴 결과 삽입 실시]
                        true
                    } else {
                        // ===============================================================
                        S_Log._F_(mContext, "Android Oreo 오레오 이상 >> 앱 설치 권한 부여 안됨", null)
                        // ===============================================================

                        // [리턴 결과 삽입 실시]
                        false
                    }
                } else {
                    // ===============================================================
                    S_Log._F_(mContext, "Android Oreo 오레오 미만 >> 앱 설치 권한 부여 확인", null)
                    // ===============================================================

                    // [리턴 결과 삽입 실시]
                    true
                }

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

            // [결과 리턴 실시]
            return resultData
        }

 

반응형
Comments