Tworzenie karty aplikacji

Aby utworzyć AppCard, aplikacja musi utworzyć w pliku manifestu dostawcę, który rozszerza klasę AppCardContentProvider. AppCardContentProvider ukrywa szczegóły, aby ułatwić tworzenie AppCard.

Deklaracja w pliku manifestu

Aby utworzyć AppCard, aplikacja musi utworzyć dostawcę w pliku manifestu, aby rozszerzyć 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

W przypadku każdego pakietu można zdefiniować tylko jednego dostawcę z tymi właściwościami:

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

    LUB

    • android:readPermission="@string/host_permission"

      ORAZ

      android:writePermission="@string/host_permission"

  • @string/host_permission znajduje się w bibliotece AppCard i określa uprawnienia w zależności od wersji interfejsu Android API systemu.

    Używanie zasobu tekstowego działa tylko podczas kompilacji za pomocą Gradle. Gdy używasz Soong, określ ciąg tekstowy z wartością zasobu tekstowego zgodnie z odpowiednim kwalifikatorem zasobu.

  • (domyślny) android:grantUriPermissions="false"

  • (domyślny) android:forceUriPermissions="false"

    Aby uniknąć nieoczekiwanych wyników, dostawca musi zdefiniować tylko jeden autorytet w android:authorities.

  • Zadeklaruj filtr intencji oparty na działaniu, com.android.car.appcard.APP_CARD_PROVIDER

Rozszerzenie klasy AppCardContentProvider

W tej sekcji opisujemy metody override i chronione metody final.

Metody zastępowania

val authority: String
Użyj tej metody, aby zwrócić autorytet zdefiniowany we właściwości pliku manifestu android:authorities.

fun onCreate(): Boolean
Ta metoda musi wywoływać super.onCreate(). Użyj tej metody, aby skonfigurować funkcję, która może spowodować opóźnienie, jeśli zostanie skonfigurowana w momencie wysłania żądania AppCard.

val appCardIds: List
Użyj tej metody, aby zwrócić listę obsługiwanych identyfikatorów AppCard. Zalecamy, aby każdy identyfikator był opisowy, ponieważ ten ciąg znaków jest używany do rejestrowania błędów.

fun onAppCardAdded(String, AppCardContext): AppCard
Ta metoda jest wywoływana, gdy komponent AppCard jest wyświetlany po raz pierwszy. Zawiera identyfikator powiązany z AppCard i AppCardContext, które zawierają wskazówki dotyczące sposobu wyświetlania AppCard.

Użyj tej metody, aby skonfigurować dowolną funkcję wymaganą przez AppCard obsługiwane jako dostawca. Po wywołaniu tej funkcji komponent AppCard odpowiadający podanemu identyfikatorowi jest uznawany za aktywny.

fun onAppCardRemoved(String)
Ta metoda jest wywoływana, gdy użytkownikowi nie są już wyświetlane żadne instancje AppCard. Odpowiada ona za wszystkie działania związane z czyszczeniem. Gdy ta funkcja zostanie wywołana, komponent AppCard odpowiadająca podanemu identyfikatorowi zostanie uznany za nieaktywny
.

fun onAppCardContextChanged(String, AppCardContext)
Ta metoda jest wywoływana, gdy system chce zaktualizować sposób wyświetlania AppCard i wysyła zaktualizowany obiekt AppCardContext.

Chronione metody finalne

fun sendAppCardUpdate(AppCard)
Wywołaj tę metodę, aby dodać do kolejki aktualizację aktywnego komponentu AppCard.

fun sendAppCardComponentUpdate(String, Component)
Wywołaj tę metodę, aby dodać do kolejki aktualizację komponentu w aktywnym komponencie AppCard. Jeśli dany komponent jest oznaczony tagiem EnforceFastUpdateRate, aktualizacja jest wysyłana natychmiast.

Najczęstsze pytania

Gdzie są przykładowe implementacje?