Para criar um AppCard, um app precisa criar um provedor no manifesto que estenda
AppCardContentProvider
. O AppCardContentProvider
abstrai os detalhes
subjacentes para facilitar a criação de AppCards.
Declaração do manifesto
Para criar um AppCard, um app precisa criar um provedor no manifesto para estender
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>
Só é possível definir um provedor por pacote e com estas propriedades:
android:exported="true"
android:enabled="true"
android:permission="@string/host_permission"
OU
android:readPermission="@string/host_permission"
E
android:writePermission="@string/host_permission"
@string/host_permission
existe na biblioteca AppCard e define uma permissão dependendo da versão da API Android do sistema.Usar o recurso de string só funciona ao criar com o Gradle. Ao usar Soong, especifique a string explícita com o valor do recurso de string de acordo com o qualificador de recurso apropriado.
(padrão)
android:grantUriPermissions="false"
(padrão)
android:forceUriPermissions="false"
Para evitar resultados inesperados, é necessário que o provedor defina uma única autoridade apenas em
android:authorities
.Declare um filtro de intent baseado em ação,
com.android.car.appcard.APP_CARD_PROVIDER
Estender AppCardContentProvider
Esta seção descreve os métodos finais override e protected.
Modificar métodos
val authority: String
android:authorities
do manifesto.fun onCreate(): Boolean
super.onCreate()
. Use esse
método para configurar funcionalidades que podem causar um atraso se forem definidas
quando um AppCard é solicitado.val appCardIds: List
fun onAppCardAdded(String, AppCardContext): AppCard
AppCardContext
que fornece
dicas sobre como o AppCard é exibido.
Use esse método para configurar qualquer funcionalidade exigida pelos AppCards compatíveis como um provedor. Depois que essa função é chamada, o AppCard que corresponde ao ID fornecido é considerado ativo.
fun onAppCardRemoved(String)
fun onAppCardContextChanged(String, AppCardContext)
AppCardContext
atualizado.Métodos finais protegidos
fun sendAppCardUpdate(AppCard)
fun sendAppCardComponentUpdate(String, Component)
EnforceFastUpdateRate
, a atualização será enviada imediatamente.Perguntas frequentes
Onde estão os exemplos de implementação?