Uygulama kartı oluşturma

AppCard oluşturmak için uygulamanın manifestte AppCardContentProvider öğesini genişleten bir sağlayıcı oluşturması gerekir. AppCardContentProvider, AppCard'ların oluşturulmasını kolaylaştırmak için temel ayrıntıları soyutlar.

Manifest beyanı

AppCard oluşturmak için uygulamanın, manifestte AppCardContentProvider uzantısını oluşturacak bir sağlayıcı oluşturması gerekir.

<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>

Paket başına yalnızca bir sağlayıcı tanımlanabilir ve bu özelliklere sahip olmalıdır:

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

    VEYA

    • android:readPermission="@string/host_permission"

      VE

      android:writePermission="@string/host_permission"

  • @string/host_permission, AppCard kitaplığında bulunur ve sistemin Android API sürümüne bağlı olarak bir izin tanımlar.

    Dize kaynağının kullanılması yalnızca Gradle ile derleme yapılırken işe yarar. Soong'u kullanırken dize kaynağı değeriyle birlikte açık dizeyi uygun kaynak niteleyicisine göre belirtin.

  • (varsayılan) android:grantUriPermissions="false"

  • (varsayılan) android:forceUriPermissions="false"

    Beklenmedik sonuçları önlemek için sağlayıcının android:authorities içinde yalnızca tek bir yetkili tanımlaması gerekir.

  • İşleme dayalı bir intent filtresi bildirin, com.android.car.appcard.APP_CARD_PROVIDER

Extend AppCardContentProvider

Bu bölümde override ve protected nihai yöntemleri açıklanmaktadır.

Geçersiz kılma yöntemleri

val authority: String
Bu yöntemi, android:authorities manifest özelliğinde tanımlanan yetkiyi döndürmek için kullanın.

fun onCreate(): Boolean
Bu yöntem super.onCreate() yöntemini çağırmalıdır. Bu yöntemi, AppCard istendiğinde ayarlanırsa gecikmeye neden olabilecek işlevleri ayarlamak için kullanın.

val appCardIds: List
Desteklenen AppCard kimliklerinin listesini döndürmek için bu yöntemi kullanın. Bu dize hataları günlüğe kaydetmek için kullanıldığından her kimliğin ayrıntılı olmasını öneririz.

fun onAppCardAdded(String, AppCardContext): AppCard
Bu yöntem, bir AppCard ilk kez gösterildiğinde çağrılır ve AppCard ile ilgili kimliği ve AppCard'ın nasıl görüntülendiğine dair ipuçları sağlayan AppCardContext değerini sağlar.

Bu yöntemi, AppCards tarafından sağlayıcı olarak desteklenen tüm işlevleri ayarlamak için kullanın. Bu işlev çağrıldığında, verilen kimliğe karşılık gelen AppCard'ın etkin olduğu kabul edilir.

fun onAppCardRemoved(String)
Bu yöntem, AppCard'ın kalan örnekleri kullanıcıya gösterilmediğinde çağrılır ve tüm temizleme işlemlerini gerçekleştirir. Bu işlev çağrıldığında, verilen kimliğe karşılık gelen AppCard etkin değil olarak kabul edilir.

fun onAppCardContextChanged(String, AppCardContext)
Bu yöntem, sistem bir AppCard'ın nasıl görüntülendiğini güncellemek istediğinde çağrılır ve güncellenmiş bir AppCardContext gönderir.

Korumalı nihai yöntemler

fun sendAppCardUpdate(AppCard)
Etkin bir AppCard için güncelleme sırasına almak üzere bu yöntemi çağırın.

fun sendAppCardComponentUpdate(String, Component)
Etkin bir AppCard'daki bileşen için güncelleme sıraya almak üzere bu yöntemi çağırın. Belirtilen bileşen EnforceFastUpdateRate ile etiketlenmişse güncelleme hemen gönderilir.

SSS

Örnek uygulamalar nerede bulunur?