Membuat AppCard

Untuk membuat AppCard, aplikasi harus membuat penyedia dalam manifes yang memperluas AppCardContentProvider. AppCardContentProvider mengabstraksi detail yang mendasarinya untuk memfasilitasi pembuatan Kartu Aplikasi.

Pernyataan manifes

Untuk membuat AppCard, aplikasi harus membuat penyedia dalam manifes untuk memperluas 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>

Hanya satu penyedia yang dapat ditentukan per paket dan dengan properti ini:

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

    ATAU,

    • android:readPermission="@string/host_permission"

      DAN,

      android:writePermission="@string/host_permission"

  • @string/host_permission ada di library AppCard dan menentukan izin bergantung pada versi Android API sistem.

    Penggunaan resource string hanya berfungsi saat membuat build dengan Gradle. Saat menggunakan Soong, tentukan string eksplisit dengan nilai resource string sesuai dengan penentu resource yang sesuai.

  • (default) android:grantUriPermissions="false"

  • (default) android:forceUriPermissions="false"

    Untuk menghindari hasil yang tidak terduga, penyedia harus menentukan hanya satu otoritas di android:authorities.

  • Mendeklarasikan filter intent berbasis tindakan, com.android.car.appcard.APP_CARD_PROVIDER

Memperluas AppCardContentProvider

Bagian ini menjelaskan metode akhir penggantian dan terlindungi.

Mengganti metode

val authority: String
Gunakan metode ini untuk menampilkan otoritas yang ditentukan dalam properti manifes android:authorities.

fun onCreate(): Boolean
Metode ini harus memanggil super.onCreate(). Gunakan metode ini untuk menyiapkan fungsi yang berpotensi menyebabkan penundaan jika disiapkan saat AppCard diminta.

val appCardIds: List
Gunakan metode ini untuk menampilkan daftar ID AppCard yang didukung. Sebaiknya buat setiap ID menjadi verbose karena string ini digunakan untuk mencatat error.

fun onAppCardAdded(String, AppCardContext): AppCard
Metode ini dipanggil saat AppCard ditampilkan untuk pertama kalinya dan memberikan ID yang terkait dengan AppCard dan AppCardContext yang memberikan petunjuk tentang cara AppCard ditampilkan.

Gunakan metode ini untuk menyiapkan fungsi apa pun yang diperlukan oleh AppCards yang didukung sebagai penyedia. Setelah fungsi ini dipanggil, AppCard yang sesuai dengan ID yang diberikan dianggap aktif.

fun onAppCardRemoved(String)
Metode ini dipanggil saat tidak ada lagi instance AppCard yang ditampilkan kepada pengguna dan menangani semua pembersihan. Saat fungsi ini dipanggil, AppCard yang sesuai dengan ID yang diberikan dianggap tidak aktif.

fun onAppCardContextChanged(String, AppCardContext)
Metode ini dipanggil saat sistem ingin memperbarui cara AppCard ditampilkan dan mengirimkan AppCardContext yang diperbarui.

Metode akhir yang dilindungi

fun sendAppCardUpdate(AppCard)
Panggil metode ini untuk mengantrekan update untuk AppCard yang aktif.

fun sendAppCardComponentUpdate(String, Component)
Panggil metode ini untuk mengantrekan update untuk komponen di AppCard yang aktif. Jika komponen tertentu diberi tag dengan EnforceFastUpdateRate, maka update akan segera dikirim.

FAQ

Di mana contoh implementasinya?