본문 바로가기

android/Process

[ Android ] category의 여러 종류에 대해서 알아보기

반응형

안드로이드의 category인텐트 필터(Intent Filter)에서 사용되는 요소 중 하나로, 특정 인텐트가 어떤 맥락에서 사용될 수 있는지를 지정하는 데 사용됩니다. 이는 인텐트가 실행되기 위한 조건을 명확히 하여, 애플리케이션이 적절한 액티비티(Activity), 서비스(Service), 또는 브로드캐스트 리시버(Broadcast Receiver)를 선택할 수 있도록 돕습니다.

1. 주요 카테고리 종류

  1. android.intent.category.DEFAULT:
    • 일반적으로 명시적으로 지정된 카테고리가 없을 때 인텐트에 자동으로 포함됩니다.
    • 특정 액티비티를 실행하기 위해 암시적 인텐트를 사용할 때, 이 카테고리를 명시하지 않으면 시스템이 적절한 액티비티를 찾지 못할 수 있습니다.
  2. android.intent.category.LAUNCHER:
    • 이 카테고리가 포함된 액티비티는 애플리케이션의 메인 런처 아이콘으로 등록됩니다.
    • 이 카테고리는 Android 시스템이 홈 화면이나 앱 서랍에서 애플리케이션의 시작 액티비티로 표시할 수 있도록 합니다.
  3. android.intent.category.BROWSABLE:
    • 이 카테고리는 브라우저에서 웹 링크를 통해 애플리케이션을 시작할 수 있도록 합니다.
    • 예를 들어, 브라우저에서 특정 URL을 클릭하면 이 카테고리를 포함한 인텐트가 해당 URL을 처리할 수 있는 액티비티를 시작하게 됩니다.
  4. android.intent.category.HOME:
    • 이 카테고리가 있는 액티비티는 홈 화면 역할을 할 수 있습니다.
    • 사용자가 '홈' 버튼을 눌렀을 때, 이 카테고리가 있는 액티비티가 호출될 수 있습니다.
  5. android.intent.category.ALTERNATIVE:
    • 대안적 작업을 나타내는 인텐트에서 사용됩니다.
    • 사용자 인터페이스에서 대체 동작(예: 다른 방법으로 파일을 여는 옵션)을 제공할 때 사용됩니다.
  6. android.intent.category.SELECTED_ALTERNATIVE:
    • 사용자가 선택한 대안적인 작업을 나타냅니다.
    • 주로 사용자가 특정 대안적 작업을 선택할 수 있는 UI에서 활용됩니다.
  7. android.intent.category.APP_BROWSER, APP_CALENDAR, APP_CONTACTS, APP_EMAIL, APP_MAPS, APP_MUSIC, APP_GALLERY, APP_MESSAGING:
    • 특정 유형의 애플리케이션을 나타내는 데 사용됩니다.
    • 예를 들어, APP_BROWSER는 웹 브라우저 애플리케이션을 나타내는 데 사용됩니다.

2. 예제

아래는 인텐트 필터에서 category를 사용하는 예제입니다. 이 예제는 런처에서 시작할 수 있는 메인 액티비티를 정의합니다.

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

3. 요약

안드로이드의 category는 인텐트 필터에서 특정 맥락이나 용도에 따라 인텐트를 분류하고, 적절한 컴포넌트를 선택할 수 있게 합니다. 이는 애플리케이션 간의 상호작용을 보다 명확하게 관리하고, 사용자에게 의도한 경험을 제공하는 데 중요한 역할을 합니다.

반응형