Crea una tarjeta de aplicación

Para crear una AppCard, una app debe crear un proveedor en el manifiesto que extienda AppCardContentProvider. El AppCardContentProvider abstrae los detalles subyacentes para facilitar la creación de AppCards.

Declaración del manifiesto

Para crear una AppCard, una app debe crear un proveedor en el manifiesto para extender AppCardContentProvider.

<provider android:name=".SimpleAppCardContentProvider"
            android:authorities="com.example.appcard.sample.media"
            android:permission="@string/host_permission"
            android:exported="true&>quot;
       <     android:>enabled="tru<e"
            intent-filter
                action android:>name="co<m.android.car.>a<ppcard.AP>P_CARD_PROVIDER" /
            /intent-filter
/provider

Solo se puede definir un proveedor por paquete con las siguientes propiedades:

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

    O BIEN

    • android:readPermission="@string/host_permission"

      Y

      android:writePermission="@string/host_permission"

  • @string/host_permission existe en la biblioteca de AppCard y define un permiso según la versión de la API de Android del sistema.

    El uso del recurso de cadena solo funciona cuando se compila con Gradle. Cuando uses Soong, especifica la cadena explícita con el valor del recurso de cadena según el calificador de recursos adecuado.

  • (predeterminado) android:grantUriPermissions="false"

  • (predeterminado) android:forceUriPermissions="false"

    Para evitar resultados inesperados, es necesario que el proveedor defina una sola autoridad únicamente en android:authorities.

  • Declara un filtro de intents basado en acciones, com.android.car.appcard.APP_CARD_PROVIDER

Extiende AppCardContentProvider

En esta sección, se describen los métodos finales anular y protegido.

Anular métodos

val authority: String
Usa este método para devolver la autoridad definida en la propiedad del manifiesto android:authorities.

fun onCreate(): Boolean
Este método debe llamar a super.onCreate(). Usa este método para configurar una funcionalidad que podría causar una demora si se configura cuando se solicita una AppCard.

val appCardIds: List
Usa este método para devolver la lista de IDs de AppCard admitidos. Recomendamos que cada ID sea detallado, ya que esta cadena se usa para registrar errores.

fun onAppCardAdded(String, AppCardContext): AppCard
Se llama a este método cuando se muestra una AppCard por primera vez y proporciona el ID relacionado con la AppCard y el AppCardContext que proporciona sugerencias sobre cómo se muestra la AppCard.

Usa este método para configurar cualquier funcionalidad que requieran las AppCards admitidas como proveedor. Una vez que se llama a esta función, se considera que la AppCard que corresponde al ID determinado está activa.

fun onAppCardRemoved(String)
Se llama a este método cuando no se muestran más instancias de AppCard al usuario y controla toda la limpieza. Cuando se llama a esta función, la AppCard que corresponde al ID determinado se considera inactiva.

fun onAppCardContextChanged(String, AppCardContext)
Se llama a este método cuando el sistema quiere actualizar la forma en que se muestra una AppCard y envía un AppCardContext actualizado.

Métodos finales protegidos

fun sendAppCardUpdate(AppCard)
Invoca este método para poner en cola una actualización de una AppCard activa.

fun sendAppCardComponentUpdate(String, Component)
Invoca este método para poner en cola una actualización de un componente en una AppCard activa. Si el componente determinado está etiquetado con EnforceFastUpdateRate, la actualización se envía de inmediato.

Preguntas frecuentes

¿Dónde se encuentran las implementaciones de ejemplo?