Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
App-Infokarte erstellen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Damit eine App eine AppCard erstellen kann, muss sie im Manifest einen Anbieter erstellen, der AppCardContentProvider
erweitert. Das AppCardContentProvider
abstrahiert die zugrunde liegenden Details, um die Erstellung von AppCards zu erleichtern.
Manifestdeklaration
Damit eine App eine AppCard erstellen kann, muss sie im Manifest einen Anbieter erstellen, um AppCardContentProvider
zu erweitern.
<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
Pro Paket kann nur ein Anbieter definiert werden, und zwar mit den folgenden Properties:
android:exported="true"
android:enabled="true"
android:permission="@string/host_permission"
ODER
@string/host_permission
ist in der AppCard-Bibliothek vorhanden und definiert eine Berechtigung, die von der Android-API-Version des Systems abhängt.
Die Verwendung der String-Ressource funktioniert nur beim Erstellen mit Gradle. Wenn Sie Soong verwenden, geben Sie den expliziten String mit dem String-Ressourcenwert entsprechend dem entsprechenden Ressourcenqualifizierer an.
(Standard) android:grantUriPermissions="false"
(Standard) android:forceUriPermissions="false"
Um unerwartete Ergebnisse zu vermeiden, muss der Anbieter nur eine Autorität in android:authorities
definieren.
Deklarieren Sie einen aktionsbasierten Intent-Filter,
com.android.car.appcard.APP_CARD_PROVIDER
AppCardContentProvider erweitern
In diesem Abschnitt werden die finalen Methoden override und protected beschrieben.
Methoden überschreiben
val authority: String
Mit dieser Methode wird die im Manifestattribut android:authorities
definierte Autorität zurückgegeben.
fun onCreate(): Boolean
Diese Methode muss super.onCreate()
aufrufen. Verwenden Sie diese Methode, um Funktionen einzurichten, die möglicherweise zu einer Verzögerung führen, wenn sie beim Anfordern einer AppCard eingerichtet werden.
val appCardIds: List
Mit dieser Methode wird die Liste der unterstützten AppCard-IDs zurückgegeben. Wir empfehlen, jede ID ausführlich zu gestalten, da dieser String zum Protokollieren von Fehlern verwendet wird.
fun onAppCardAdded(String, AppCardContext): AppCard
Diese Methode wird aufgerufen, wenn eine AppCard zum ersten Mal angezeigt wird. Sie enthält die ID der AppCard und die AppCardContext
, die Hinweise zur Darstellung der AppCard geben.
Mit dieser Methode können Sie alle Funktionen einrichten, die von AppCards als Anbieter unterstützt werden. Sobald diese Funktion aufgerufen wird, gilt die AppCard, die der angegebenen ID entspricht, als aktiv.
fun onAppCardRemoved(String)
Diese Methode wird aufgerufen, wenn dem Nutzer keine verbleibenden Instanzen der AppCard angezeigt werden, und übernimmt alle Bereinigungen. Wenn diese Funktion aufgerufen wird, gilt die AppCard, die der angegebenen ID entspricht, als inaktiv.
fun onAppCardContextChanged(String, AppCardContext)
Diese Methode wird aufgerufen, wenn das System die Darstellung einer AppCard aktualisieren möchte und eine aktualisierte AppCardContext
sendet.
Geschützte finale Methoden
fun sendAppCardUpdate(AppCard)
Rufen Sie diese Methode auf, um ein Update für eine aktive AppCard in die Warteschlange zu stellen.
fun sendAppCardComponentUpdate(String, Component)
Rufen Sie diese Methode auf, um ein Update für eine Komponente in einer aktiven AppCard in die Warteschlange zu stellen. Wenn die angegebene Komponente mit EnforceFastUpdateRate
gekennzeichnet ist, wird das Update sofort gesendet.
Häufig gestellte Fragen
Wo finde ich die Beispielimplementierungen?
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-09-04 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-09-04 (UTC)."],[],[],null,["To create an AppCard, an app must create a provider in the manifest that extends\n`AppCardContentProvider`. The `AppCardContentProvider` abstracts away underlying\ndetails to facilitate the creation of AppCards.\n\nManifest declaration\n\nTo create an AppCard, an app must create a provider in the manifest to extend\n`AppCardContentProvider`. \n\n \u003cprovider android:name=\".SimpleAppCardContentProvider\"\n android:authorities=\"com.example.appcard.sample.media\"\n android:permission=\"@string/host_permission\"\n android:exported=\"true&\u003equot;\n \u003c android:\u003eenabled=\"tru\u003ce\"\n intent-filter\n action android:\u003ename=\"co\u003cm.android.car.\u003ea\u003cppcard.AP\u003eP_CARD_PROVIDER\" /\n /intent-filter\n /provider\n\n**Only one provider can be defined per package** and with these properties:\n\n- `android:exported=\"true\"`\n- `android:enabled=\"true\"`\n- `android:permission=\"@string/host_permission\"`\n\n OR,\n - `android:readPermission=\"@string/host_permission\"`\n\n AND,\n\n `android:writePermission=\"@string/host_permission\"`\n- `@string/host_permission` exists in the AppCard library and defines a\n permission depending on the Android API version of the system.\n\n Using the string resource works only when building with Gradle. When using\n Soong, specify the explicit string with the string resource value according\n to the appropriate resource qualifier.\n- (*default* ) `android:grantUriPermissions=\"false\"`\n\n- (*default* ) `android:forceUriPermissions=\"false\"`\n\n To avoid unexpected results, it's required that the provider define a single\n authority **only** in `android:authorities`.\n- Declare an action-based intent filter,\n `com.android.car.appcard.APP_CARD_PROVIDER`\n\nExtend AppCardContentProvider\n\nThis section describes **override** and **protected** final methods.\n\nOverride methods\n\n\u003cbr /\u003e\n\n`val authority: String` Use this method to return the authority defined in the `android:authorities` manifest property.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n`fun onCreate(): Boolean` This method must call `super.onCreate()`. Use this method to set up functionality that could potentially cause a delay if set up when an AppCard is requested.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n`val appCardIds: List` Use this method to return the list of supported AppCard IDs. We recommend making each ID verbose since this string is used to log errors.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n`fun onAppCardAdded(String, AppCardContext): AppCard` This method is called when an AppCard is shown for the first time and provides the ID related to the AppCard and the `AppCardContext` that provide hints as to how the AppCard is displayed.\n\n\u003cbr /\u003e\n\nUse this method to set up any functionality required by the AppCards\nsupported as a provider. Once this function is called, the AppCard that\ncorresponds to the given ID is considered to be **active.**\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n`fun onAppCardRemoved(String)` This method is called when no remaining instances of the AppCard are shown to the user and handles all clean up. When this function is called, the AppCard that corresponds to the given ID is considered **inactive.**\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n`fun onAppCardContextChanged(String, AppCardContext)` This method is called when the system wants to update how an AppCard is displayed and sends an updated `AppCardContext`.\n\n\u003cbr /\u003e\n\nProtected final methods\n\n\u003cbr /\u003e\n\n`fun sendAppCardUpdate(AppCard)` Invoke this method to queue an update for an active AppCard.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n`fun sendAppCardComponentUpdate(String, Component)` Invoke this method to queue an update for a component in an active AppCard. If the given component is tagged with `EnforceFastUpdateRate`, then the update is sent immediately.\n\n\u003cbr /\u003e\n\nFAQ\n\nWhere are the sample implementations?\n\n- [Calendar AppCard](https://android.googlesource.com/platform/packages/apps/Car/libs/+/refs/tags/ub-automotive-master-20250418/car-app-card-lib/sample-calendar-app/)\n- [Media AppCard](https://android.googlesource.com/platform/packages/apps/Car/libs/+/refs/tags/ub-automotive-master-20250418/car-app-card-lib/sample-media-app/)\n- [Weather AppCard](https://android.googlesource.com/platform/packages/apps/Car/libs/+/refs/tags/ub-automotive-master-20250418/car-app-card-lib/sample-weather-app/)"]]