투케이2K

710. (Android/Java) Menifest.xml 파일에 등록 된 action.VIEW 액티비티 (activity) 종류 확인 - queryIntentActivities 본문

Android

710. (Android/Java) Menifest.xml 파일에 등록 된 action.VIEW 액티비티 (activity) 종류 확인 - queryIntentActivities

투케이2K 2023. 12. 13. 17:24

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

[AndroidManifest.xml 파일에 등록된 activity]

        <!-- ============================================================= -->
        <!-- [웹뷰 액티비티] : [android.intent.action.VIEW] -->
        <!-- ============================================================= -->
        <activity
            android:name=".A_Webview"
            android:exported="true"
            android:windowSoftInputMode="adjustResize"
            android:configChanges="keyboardHidden|orientation|screenSize">

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
            </intent-filter>
        </activity>


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


[자바 소스 코드]

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

            // ---------------------------------------
            // [쿼리 수행을 위한 intent 선언]
            // ---------------------------------------
            // [Intent.ACTION_VIEW] : [사용자에게 보여줄 데이터가 있어 화면 전환을 수행 하는 화면]
            // ---------------------------------------
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);


            // ---------------------------------------
            // [패키지 매니저 선언 및 액티비티 리스트 확인 쿼리 수행]
            // ---------------------------------------
            PackageManager pm = getPackageManager();
            List<ResolveInfo> activityList = null;

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                activityList = pm.queryIntentActivities(intent, PackageManager.ResolveInfoFlags.of(0));
            } else {
                activityList = pm.queryIntentActivities(intent, 0);
            }


            // ---------------------------------------
            // [쿼리 수행 후 조회 된 액티비티 리스트 확인]
            // ---------------------------------------
            if (activityList != null && activityList.size() > 0){

                for (ResolveInfo temp : activityList) {
                    if (String.valueOf(temp.activityInfo.name).contains(getPackageName()) == true){
                        S_Log._D_("[Query Intent] : Activity Info", new String[]{
                                "NAME :: " + String.valueOf(temp.activityInfo.name)
                        });
                    }
                }

            }
            else {
                S_Log._E_("[Query Intent] : Activity List Is Null", null);
            }

        }
        catch (Exception e){
            e.printStackTrace();
        }
 

[결과 출력]

 

D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.javaproject.A_Intro.onCreate(A_Intro.java:334)]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2023-12-12 15:05:45 화요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: [Query Intent] : Activity Info]
I/: ----------------------------------------------------
I/: [LOG :: NAME :: com.example.javaproject.A_Webview]
D///===========//: ================================================

 

반응형
Comments