Creare una scheda dell'app

Per creare una scheda app, un'app deve creare un provider nel manifest che estenda AppCardContentProvider. AppCardContentProvider astrae i dettagli sottostanti per facilitare la creazione di AppCard.

Dichiarazione del manifest

Per creare una scheda app, un'app deve creare un provider nel manifest per estendere 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>

Per ogni pacchetto può essere definito un solo fornitore con queste proprietà:

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

    OPPURE,

    • android:readPermission="@string/host_permission"

      E,

      android:writePermission="@string/host_permission"

  • @string/host_permission esiste nella libreria AppCard e definisce un'autorizzazione a seconda della versione dell'API Android del sistema.

    L'utilizzo della risorsa stringa funziona solo quando la build viene creata con Gradle. Quando utilizzi Soong, specifica la stringa esplicita con il valore della risorsa stringa in base al qualificatore di risorsa appropriato.

  • (predefinito) android:grantUriPermissions="false"

  • (predefinito) android:forceUriPermissions="false"

    Per evitare risultati imprevisti, è necessario che il fornitore definisca una sola autorità solo in android:authorities.

  • Dichiara un filtro per intent basato sull'azione, com.android.car.appcard.APP_CARD_PROVIDER

Estendi AppCardContentProvider

Questa sezione descrive i metodi finali override e protected.

Metodi di override

val authority: String
Utilizza questo metodo per restituire l'autorità definita nella proprietà android:authorities del file manifest.

fun onCreate(): Boolean
Questo metodo deve chiamare super.onCreate(). Utilizza questo metodo per configurare funzionalità che potrebbero potenzialmente causare un ritardo se configurate quando viene richiesta una scheda app.

val appCardIds: List
Utilizza questo metodo per restituire l'elenco degli ID AppCard supportati. Ti consigliamo di rendere ogni ID dettagliato, poiché questa stringa viene utilizzata per registrare gli errori.

fun onAppCardAdded(String, AppCardContext): AppCard
Questo metodo viene chiamato quando una scheda app viene mostrata per la prima volta e fornisce l'ID relativo alla scheda app e il AppCardContext che fornisce suggerimenti su come viene visualizzata la scheda app.

Utilizza questo metodo per configurare qualsiasi funzionalità richiesta dalle AppCard supportate come fornitore. Una volta chiamata questa funzione, la scheda app che corrisponde all'ID specificato viene considerata attiva.

fun onAppCardRemoved(String)
Questo metodo viene chiamato quando non vengono mostrate altre istanze di AppCard all'utente e gestisce tutta la pulizia. Quando viene chiamata questa funzione, la AppCard corrispondente all'ID specificato viene considerata inattiva
.

fun onAppCardContextChanged(String, AppCardContext)
Questo metodo viene chiamato quando il sistema vuole aggiornare la modalità di visualizzazione di una scheda app e invia un AppCardContext aggiornato.

Metodi finali protetti

fun sendAppCardUpdate(AppCard)
Richiama questo metodo per mettere in coda un aggiornamento per una scheda app attiva.

fun sendAppCardComponentUpdate(String, Component)
Richiama questo metodo per mettere in coda un aggiornamento per un componente in una scheda app attiva. Se il componente specificato è taggato con EnforceFastUpdateRate, l'aggiornamento viene inviato immediatamente.

Domande frequenti

Dove si trovano le implementazioni di esempio?