투케이2K

618. (Android/Java) [Android 13] 안드로이드 [ 내 파일 ] 폴더 인텐트 이동 수행 본문

Android

618. (Android/Java) [Android 13] 안드로이드 [ 내 파일 ] 폴더 인텐트 이동 수행

투케이2K 2023. 8. 1. 20:12

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

[AndroidManifest.xml 파일에 추가]

    <queries>
        <package android:name="com.sec.android.app.myfiles" /> <!-- [내파일] -->
    </queries>






[JAVA : 소스 코드]

    public static void goAppRunLaunch(Context mContext, final String packageNames){

        /**
         * // -----------------------------------------
         * [goAppRunLaunch 메소드 설명]
         * // -----------------------------------------
         * 1. getLaunchIntentForPackage 사용해 외부앱 설치 여부 확인 및 외부앱 실행 실시
         * // -----------------------------------------
         * 2. 호출 방법 : C_MoveApp.goAppRunLaunch(A_Main.this, "com.test.app");
         * // -----------------------------------------
         * 3. 로 직 : 외부앱이 설치되지 않은 경우 앱 설치 진행 / 설치된 경우 외부앱 실행 실시
         * // -----------------------------------------
         * 4. TODO [중요] AndroidManifest.xml 파일에서 queries >> package 등록 필요
         * // -----------------------------------------
         * */


        // [사전 패키지명이 널인지 체크 실시]
        if (C_Util.stringNotNull(packageNames) == true){
        }
        else { // [패키지 명이 널인 경우]
            S_Log.i("---","---");
            S_Log.e("//===========//","================================================");
            S_Log.i("","\n"+"[C_MoveApp >> goAppRunLaunch() :: 외부 앱 실행 및 마켓 이동 실시 [외부 열기 실패]]");
            S_Log.i("","\n"+"-----------------------------------------");
            S_Log.i("","\n"+"[error :: "+"패키지명 null 널 임"+"]");
            S_Log.i("","\n"+"-----------------------------------------");
            S_Log.i("","\n"+"[packageNames :: "+String.valueOf(packageNames)+"]");
            S_Log.e("//===========//","================================================");
            S_Log.i("---","---");
            return;
        }


        // [외부앱이 설치되었는지 확인]
        try {
            // [특정 패키지 명이 앱에 설치 되어 있는지 확인]
            Intent existPackage = mContext.getPackageManager().getLaunchIntentForPackage(packageNames);
            if (existPackage != null) { // [설치되어 있는 경우]
                S_Log.i("---","---");
                S_Log.w("//===========//","================================================");
                S_Log.i("","\n"+"[C_MoveApp >> goAppRunLaunch() :: 외부 앱 실행]");
                S_Log.i("","\n"+"-----------------------------------------");
                S_Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
                S_Log.i("","\n"+"-----------------------------------------");
                S_Log.i("","\n"+"[상태 :: "+"외부 앱 설치 됨"+"]");
                S_Log.w("//===========//","================================================");
                S_Log.i("---","---");

                // [인텐트 이동]
                Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(packageNames);
                intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
                mContext.startActivity(intent);
            }
            else { // [설치되지 않은 경우]
                S_Log.i("---","---");
                S_Log.e("//===========//","================================================");
                S_Log.i("","\n"+"[C_MoveApp >> goAppRunLaunch() :: 외부 앱 실행 에러]");
                S_Log.i("","\n"+"-----------------------------------------");
                S_Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
                S_Log.i("","\n"+"-----------------------------------------");
                S_Log.i("","\n"+"[상태 :: "+"외부 앱 설치 안됨"+"]");
                S_Log.e("//===========//","================================================");
                S_Log.i("---","---");
            }
        }
        catch (ActivityNotFoundException e) {
            // [이동할 패키지 명을 찾이 못한 경우]
            S_Log.i("---","---");
            S_Log.e("//===========//","================================================");
            S_Log.i("","\n"+"[C_MoveApp >> goAppRunLaunch() :: 외부 앱 실행 에러]");
            S_Log.i("","\n"+"-----------------------------------------");
            S_Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
            S_Log.i("","\n"+"-----------------------------------------");
            S_Log.i("","\n"+"[ActivityNotFoundException :: "+String.valueOf(e.getMessage())+"]");
            S_Log.e("//===========//","================================================");
            S_Log.i("---","---");
        }
        catch (Exception e){
            S_Log.i("---","---");
            S_Log.e("//===========//","================================================");
            S_Log.i("","\n"+"[C_MoveApp >> goAppRunLaunch() :: 외부 앱 실행 에러]");
            S_Log.i("","\n"+"-----------------------------------------");
            S_Log.i("","\n"+"[찾을려는 앱 :: "+String.valueOf(packageNames)+"]");
            S_Log.i("","\n"+"-----------------------------------------");
            S_Log.i("","\n"+"[Exception :: "+String.valueOf(e.getMessage())+"]");
            S_Log.e("//===========//","================================================");
            S_Log.i("---","---");
        }
    }

 

반응형
Comments