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"
android:enabled="true">
<intent-filter>
<action android:name="com.android.car.appcard.APP_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
android:authorities
.fun onCreate(): Boolean
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
fun onAppCardAdded(String, AppCardContext): AppCard
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)
fun onAppCardContextChanged(String, AppCardContext)
AppCardContext
actualizado.Métodos finales protegidos
fun sendAppCardUpdate(AppCard)
fun sendAppCardComponentUpdate(String, Component)
EnforceFastUpdateRate
, la actualización se envía de inmediato.Preguntas frecuentes
¿Dónde se encuentran las implementaciones de ejemplo?