투케이2K

680. (Android/Java) getPackageManager().canRequestPackageInstalls() 사용해 알수 없는 앱 설치 권한 부여 상태 확인 본문

Android

680. (Android/Java) getPackageManager().canRequestPackageInstalls() 사용해 알수 없는 앱 설치 권한 부여 상태 확인

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

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

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

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

        // [Context 지정]
        context = mContext;

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

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

            ///*
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ // [오레오 이상]

                if (mContext.getPackageManager().canRequestPackageInstalls() == true){
                    // ===============================================================
                    S_Log._F_(mContext, "Android Oreo 오레오 이상 >> 앱 설치 권한 부여 확인", null);
                    // ===============================================================

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

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

                // [리턴 결과 삽입 실시]
                resultData = true;
            }
        }
        catch (Exception e){
            S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e);
        }

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

 

반응형
Comments