Tworzenie karty aplikacji

Aby utworzyć kartę aplikacji, aplikacja musi utworzyć w manifeście dostawcę, który rozszerza klasę AppCardContentProvider. AppCardContentProvider ukrywa szczegóły, aby ułatwić tworzenie kart aplikacji.

Deklaracja w pliku manifestu

Aby utworzyć kartę aplikacji, 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 w systemie.

    Używanie zasobu ciągu znaków działa tylko podczas kompilacji za pomocą Gradle. Gdy używasz Soong, określ ciąg znaków z wartością zasobu ciągu znaków 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 organ w android:authorities.

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

Extend AppCardContentProvider

W tej sekcji opisujemy metody finalne overrideprotected.

Metody zastępowania

val authority: String
Użyj tej metody, aby zwrócić organ zdefiniowany we właściwości 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 karta aplikacji jest wyświetlana po raz pierwszy. Zawiera identyfikator powiązany z kartą aplikacji i AppCardContext, które zawierają wskazówki dotyczące sposobu wyświetlania karty aplikacji.

Użyj tej metody, aby skonfigurować dowolną funkcję wymaganą przez karty aplikacji obsługiwane jako dostawca. Po wywołaniu tej funkcji karta aplikacji odpowiadająca podanemu identyfikatorowi jest uznawana za aktywną.

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

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

Chronione metody finalne

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

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

Najczęstsze pytania

Gdzie są przykładowe implementacje?