Créer une fiche d'application

Pour créer une AppCard, une application doit créer un fournisseur dans le fichier manifeste qui étend AppCardContentProvider. AppCardContentProvider fait abstraction des détails sous-jacents pour faciliter la création d'AppCards.

Déclaration du fichier manifeste

Pour créer une AppCard, une application doit créer un fournisseur dans le fichier manifeste pour étendre AppCardContentProvider.

<provider android:name=".SimpleAppCardContentProvider"
            android:authorities="com.example.appcard.sample.media"
            android:permission="@string/host_permission"
            android:exported="true"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.android.car.appcard.APP_CARD_PROVIDER" />
            </intent-filter>
</provider>

Un seul fournisseur peut être défini par package avec les propriétés suivantes :

  • android:exported="true"
  • android:enabled="true"
  • android:permission="@string/host_permission"

    OU,

    • android:readPermission="@string/host_permission"

      ET

      android:writePermission="@string/host_permission"

  • @string/host_permission existe dans la bibliothèque AppCard et définit une autorisation en fonction de la version de l'API Android du système.

    L'utilisation de la ressource de chaîne ne fonctionne que lors de la compilation avec Gradle. Lorsque vous utilisez Soong, spécifiez la chaîne explicite avec la valeur de la ressource de chaîne en fonction du qualificatif de ressource approprié.

  • (par défaut) android:grantUriPermissions="false"

  • (par défaut) android:forceUriPermissions="false"

    Pour éviter les résultats inattendus, le fournisseur doit définir une seule autorité dans android:authorities.

  • Déclarez un filtre d'intent basé sur une action : com.android.car.appcard.APP_CARD_PROVIDER

Étendre AppCardContentProvider

Cette section décrit les méthodes finales override et protected.

Ignorer les méthodes

val authority: String
Utilisez cette méthode pour renvoyer l'autorité définie dans la propriété de fichier manifeste android:authorities.

fun onCreate(): Boolean
Cette méthode doit appeler super.onCreate(). Utilisez cette méthode pour configurer des fonctionnalités qui pourraient potentiellement entraîner un retard si elles sont configurées lorsqu'une AppCard est demandée.

val appCardIds: List
Utilisez cette méthode pour renvoyer la liste des ID AppCard compatibles. Nous vous recommandons de créer des ID détaillés, car cette chaîne est utilisée pour consigner les erreurs.

fun onAppCardAdded(String, AppCardContext): AppCard
Cette méthode est appelée lorsqu'une AppCard est affichée pour la première fois. Elle fournit l'ID associé à l'AppCard et le AppCardContext qui fournit des indications sur la façon dont l'AppCard est affichée.

Utilisez cette méthode pour configurer les fonctionnalités requises par les AppCards compatibles en tant que fournisseur. Une fois cette fonction appelée, l'AppCard correspondant à l'ID donné est considérée comme active.

fun onAppCardRemoved(String)
Cette méthode est appelée lorsqu'aucune instance restante de l'AppCard n'est affichée à l'utilisateur et gère tout le nettoyage. Lorsque cette fonction est appelée, l'AppCard correspondant à l'ID donné est considérée comme inactive.

fun onAppCardContextChanged(String, AppCardContext)
Cette méthode est appelée lorsque le système souhaite mettre à jour la façon dont une AppCard est affichée et envoie un AppCardContext mis à jour.

Méthodes finales protégées

fun sendAppCardUpdate(AppCard)
Appelez cette méthode pour mettre en file d'attente une mise à jour pour une AppCard active.

fun sendAppCardComponentUpdate(String, Component)
Appelez cette méthode pour mettre en file d'attente une mise à jour pour un composant dans une AppCard active. Si le composant donné est tagué avec EnforceFastUpdateRate, la mise à jour est envoyée immédiatement.

Questions fréquentes

Où se trouvent les exemples d'implémentation ?