<alias-activité>

Syntaxe :
<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>
Contenu dans :
<application>
Peut contenir :
<intent-filter>
<meta-data>
<property>
Description :
Alias d'une activité, nommé par l'attribut targetActivity. La cible doit se trouver dans la même application que l'alias et doit être déclarée avant l'alias dans le fichier manifeste.

L'alias présente l'activité cible en tant qu'entité indépendante et peut avoir son propre ensemble de filtres d'intent. Ce sont eux, plutôt que les filtres d'intent de l'activité cible elle-même, qui déterminent quels intents peuvent activer la cible via l'alias et comment le système traite l'alias.

Par exemple, les filtres d'intent sur l'alias peuvent spécifier les indicateurs "android.intent.action.MAIN" et "android.intent.category.LAUNCHER"", qui représentent l'alias dans le lanceur d'applications, même si aucun des filtres de l'activité cible ne définit ces indicateurs.

À l'exception de targetActivity, <activity-alias> attributs constituent un sous-ensemble des <activity> attributs. Pour les attributs du sous-ensemble, aucune des valeurs définies pour la cible ne s'applique à l'alias. Toutefois, pour les attributs qui ne font pas partie du sous-ensemble, les valeurs définies pour l'activité cible s'appliquent également à l'alias.

Attributs :
android:enabled
Indique si l'activité cible peut être instanciée ou non par le système via cet alias. "true" si oui et "false" dans le cas contraire. La valeur par défaut est "true".

L'élément <application> possède son propre enabled attribut qui s'applique à tous les composants d'application, y compris les alias d'activité. Les <application> et <activity-alias> attributs doivent tous deux être "true" pour que le système puisse instancier l'activité cible via l'alias. Si l'une des valeurs est "false", l'alias ne fonctionne pas.

android:exported
Indique si les composants d'autres applications peuvent lancer l'activité cible via cet alias. "true" si oui et "false" dans le cas contraire. Si la valeur est "false", l'activité cible ne peut être lancée via l'alias que par les composants de la même application que l'alias ou des applications ayant le même ID utilisateur.

La valeur par défaut varie selon que l'alias contient des filtres d'intent ou non. En l'absence de filtres, l'activité ne peut être appelée via l'alias qu'en spécifiant le nom exact de l'alias. Cela implique que l'alias est destiné uniquement à un usage interne à l'application, car les autres ne connaissent pas son nom. La valeur par défaut est donc "false". En revanche, la présence d'au moins un filtre implique que l'alias est destiné à un usage externe. La valeur par défaut est donc "true".

android:icon
Icône de l'activité cible lorsqu'elle est présentée aux utilisateurs via l'alias. Pour en savoir plus, consultez l'attribut icon de l'élément <activity>.
android:intentMatchingFlags

Utilisez cet attribut pour affiner la façon dont le système met en correspondance les intents entrants avec les composants de l'application. Par défaut, aucune règle de correspondance spéciale n'est appliquée.

La valeur définie sur un tag <activity-alias> remplace la valeur définie sur la <activity> cible ou héritée de <application> pour cet alias spécifique. Si elle n'est pas explicitement définie sur l'alias, elle hérite du comportement de l'activité cible ou de l'application.

La valeur doit correspondre à une ou plusieurs des options suivantes, séparées par '|' :

Option Description
none Désactive toutes les règles de correspondance spéciales pour les intents entrants. Lorsque vous spécifiez plusieurs options, les valeurs conflictuelles sont résolues en donnant la priorité à l'option none flag.
enforceIntentFilter

Applique une correspondance plus stricte pour les intents entrants :

  • Les intents explicites doivent correspondre au filtre d'intent du composant cible.
  • Les intents sans action ne correspondent à aucun filtre d'intent.
allowNullAction

Assouplit les règles de correspondance pour autoriser la correspondance des intents sans action. Cette option est utilisée conjointement avec enforceIntentFilter pour obtenir le comportement suivant :

  • Les intents explicites doivent correspondre au filtre d'intent du composant cible.
  • Les intents sans action sont autorisés à correspondre à n'importe quel filtre d'intent.

Pour en savoir plus, consultez la section Intents plus sécurisés dans les changements de comportement d'Android 16 (niveau d'API 36).

android:label
Libellé lisible pour l'alias lorsqu'il est présenté aux utilisateurs via l'alias. Pour en savoir plus, consultez l'attribut label de l'élément <activity>.
android:name
Nom unique de l'alias. Le nom ressemble à celui d'une classe complète. Contrairement au nom de l'activité cible, le nom de l'alias est arbitraire. Il ne fait pas référence à une classe réelle.
android:permission
Nom d'une autorisation que les clients doivent avoir pour lancer l'activité cible ou pour faire quelque chose à l'aide de l'alias. Si un appelant de startActivity() ou startActivityForResult() n'a pas reçu l'autorisation spécifiée, l'activité cible n'est pas activée.

Cet attribut supplante toute autorisation définie pour l'activité cible elle-même. Si cette valeur n'est pas définie, aucune autorisation n'est nécessaire pour activer la cible via l'alias.

Pour en savoir plus sur les autorisations, consultez la section Autorisations dans la présentation du fichier manifeste de l'application.

android:targetActivity
Nom de l'activité pouvant être activée via l'alias. Ce nom doit correspondre à l'attribut name d'un élément <activity> qui précède l'alias dans le fichier manifeste.
Première apparition :
Niveau d'API 1
Voir aussi :
<activity>