Sobes.tech
Junior — Middle

Jaką rolę odgrywa atrybut android:exported w pliku AndroidManifest.xml podczas definiowania komponentów aplikacji?

sobes.tech AI

Odpowiedź od AI

Atrybut android:exported w pliku AndroidManifest.xml określa, czy komponent aplikacji (Activity, Service, BroadcastReceiver lub ContentProvider) może być dostępny do uruchomienia lub interakcji z innych aplikacji.

  • Jeśli android:exported="true", komponent jest dostępny z zewnątrz, czyli inne aplikacje mogą go uruchomić.
  • Jeśli android:exported="false", komponent jest dostępny tylko wewnątrz samej aplikacji.

Jest to ważne dla bezpieczeństwa i kontroli dostępu. Od Androida 12, dla komponentów z filtrami intencji, konieczne jest jawne ustawienie tego atrybutu.

Przykład:

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