<Aktivitätsalias>

Syntax:
<activity-alias android:enabled=["true" | "false"]
                android:exported=["true" | "false"]
                android:icon="drawable resource"
                android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"]
                android:label="string resource"
                android:name="string"
                android:permission="string"
                android:targetActivity="string" >
    ...
</activity-alias>
Enthalten in:
<application>
Kann Folgendes enthalten:
<intent-filter>
<meta-data>
<property>
Beschreibung:
Ein Alias für eine Aktivität, benannt durch das Attribut targetActivity. Das Ziel muss sich in derselben Anwendung wie das Alias befinden und vor dem Alias im Manifest deklariert werden.

Das Alias präsentiert die Zielaktivität als unabhängige Entität und kann eigene Intent-Filter haben. Diese bestimmen anstelle der Intent-Filter für die Zielaktivität selbst, welche Intents das Ziel über das Alias aktivieren können und wie das System das Alias behandelt.

Die Intent-Filter für das Alias können beispielsweise die Flags "android.intent.action.MAIN" und "android.intent.category.LAUNCHER" angeben, wodurch es im App-Launcher dargestellt wird, obwohl keines der Filter für die Zielaktivität selbst diese Flags festlegt.

Mit Ausnahme von targetActivity, <activity-alias> Attribute sind eine Teilmenge der <activity> Attribute. Bei Attributen in der Teilmenge werden keine der für das Ziel festgelegten Werte auf das Alias übertragen. Bei Attributen, die nicht in der Teilmenge enthalten sind, gelten die für die Zielaktivität festgelegten Werte jedoch auch für das Alias.

Attribute:
android:enabled
Gibt an, ob die Zielaktivität vom System über dieses Alias instanziiert werden kann. "true" bedeutet, dass dies möglich ist, "false", dass dies nicht möglich ist. Der Standardwert ist "true".

Das <application> Element hat ein eigenes enabled Attribut, das für alle Anwendungskomponenten gilt, einschließlich Aktivitäts-Alias. Die <application> und <activity-alias> Attribute müssen beide "true" sein, damit das System die Zielaktivität über das Alias instanziieren kann. Wenn eines der Attribute "false" ist, funktioniert das Alias nicht.

android:exported
Gibt an, ob die Komponenten anderer Anwendungen die Zielaktivität über dieses Alias starten können. "true" bedeutet, dass dies möglich ist, "false", dass dies nicht möglich ist. Wenn "false" festgelegt ist, kann die Zielaktivität über das Alias nur von Komponenten derselben Anwendung wie das Alias oder von Anwendungen mit derselben Nutzer-ID gestartet werden.

Der Standardwert hängt davon ab, ob das Alias Intent-Filter enthält. Wenn keine Filter vorhanden sind, kann die Aktivität über das Alias nur aufgerufen werden, wenn der genaue Name des Alias angegeben wird. Das bedeutet, dass das Alias nur für die interne Verwendung in der Anwendung vorgesehen ist, da andere den Namen nicht kennen. Der Standardwert ist also "false". Wenn mindestens ein Filter vorhanden ist, ist das Alias für die externe Verwendung vorgesehen. Der Standardwert ist daher "true".

android:icon
Ein Symbol für die Zielaktivität, wenn sie Nutzern über das Alias präsentiert wird. Weitere Informationen finden Sie im Attribut icon des Elements <activity>.
android:intentMatchingFlags

Mit diesem Attribut können Sie genauer festlegen, wie das System eingehende Intents mit App Komponenten abgleicht. Standardmäßig werden keine speziellen Abgleichsregeln angewendet.

Der für ein <activity-alias> Tag festgelegte Wert überschreibt den für das Ziel <activity> festgelegten oder vom <application> übernommenen Wert für dieses bestimmte Alias. Wenn er nicht explizit für das Alias definiert ist, wird das Verhalten von der Zielaktivität oder der Anwendung übernommen.

Der Wert muss eines oder mehrere der folgenden Flags sein, getrennt durch „|“:

Flag Beschreibung
none Deaktiviert alle speziellen Abgleichsregeln für eingehende Intents. Wenn mehrere Flags angegeben werden, werden widersprüchliche Werte aufgelöst, indem das none Flag Vorrang erhält.
enforceIntentFilter

Erzwingt einen strengeren Abgleich für eingehende Intents:

  • Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
  • Intents ohne Aktion stimmen mit keinem Intent-Filter überein.
allowNullAction

Lockert die Abgleichsregeln, damit Intents ohne Aktion übereinstimmen können. Dieses Flag wird in Verbindung mit enforceIntentFilter verwendet, um das folgende Verhalten zu erzielen:

  • Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
  • Intents ohne Aktion können mit jedem Intent-Filter übereinstimmen.

Weitere Informationen finden Sie im Abschnitt Safer Intents (Sicherere Intents) unter Verhaltensänderungen in Android 13 (API-Ebene 33).

android:label
Ein für Nutzer lesbares Label für das Alias, wenn es Nutzern über das Alias präsentiert wird. Weitere Informationen finden Sie im Attribut label des Elements <activity>.
android:name
Ein eindeutiger Name für das Alias. Der Name ähnelt einem vollständig qualifizierten Klassennamen. Im Gegensatz zum Namen der Zielaktivität ist der Aliasname beliebig. Er verweist nicht auf eine tatsächliche Klasse.
android:permission
Der Name einer Berechtigung, die Clients haben müssen, um die Zielaktivität zu starten oder sie über das Alias zu einer Aktion zu veranlassen. Wenn einem Aufrufer von startActivity() oder startActivityForResult() die angegebene Berechtigung nicht gewährt wird, wird die Zielaktivität nicht aktiviert.

Dieses Attribut ersetzt alle für die Zielaktivität selbst festgelegten Berechtigungen. Wenn es nicht festgelegt ist, ist keine Berechtigung erforderlich, um das Ziel über das Alias zu aktivieren.

Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen in der Übersicht zum App-Manifest.

android:targetActivity
Der Name der Aktivität, die über das Alias aktiviert werden kann. Dieser Name muss mit dem name Attribut eines <activity> Elements übereinstimmen, das dem Alias im Manifest vorangeht.
Eingeführt in:
API-Ebene 1
Weitere Informationen:
<activity>