Gunakan AppCardHost
untuk berkomunikasi dengan aplikasi yang menampilkan AppCards.
Izin
Setiap aplikasi yang menggunakan AppCardHost
harus memiliki izin berikut:
android.permission.INTERACT_ACROSS_USERS_FULL
android.permission.QUERY_ALL_PACKAGES
- (Khusus di API level 34 dan yang lebih tinggi)
android.car.permission.BIND_APP_CARD_PROVIDER
Lakukan inisialisasi
Untuk melakukan inisialisasi host, berikan:
- Konteks
updateRate
Rasio pembaruan Kartu Aplikasi dalam milidetik.fastUpdateRate
Kecepatan update dalam milidetik untuk komponen yang diberi tag denganEnforceFastUpdateRate
responseExecutor
Thread tempat Anda ingin menerima respons dari aplikasi AppCard.
Desain
AppCardHost
dapat berinteraksi dengan salah satu dari dua cara berikut:
- Mendaftar sebagai
AppCardListener
ATAU,
- Berinteraksi dengan
AppCardHost
API
AppCardListener
Komponen AppCardListener
mendaftarkan dirinya sendiri dengan AppCardHost
untuk menerima update komunikasi dari aplikasi AppCardHost
dan AppCard.
Fungsi antarmuka AppCardListener
dijelaskan di sini.
fun onAppCardReceived(AppCardContainer)
AppCardContainer
yang menyediakan AppCard dan
appIdentifier
untuk mengidentifikasi aplikasi yang mengirim AppCardfun onComponentReceived(AppCardComponentContainer)
AppCardComponentContainer
, yang menyediakan
komponen AppCard, Identifier
untuk mengidentifikasi aplikasi yang mengirim
AppCard, dan ID string untuk mengarah ke AppCard yang terkait dengan komponen tersebut.fun onProviderRemoved(String, String?)
Jika otorisasi adalah {@code null}
, seluruh paket akan dihapus.
fun onProviderAdded(String, String?)
Contoh penggunaan. Gunakan fungsi ini sebagai pemicu untuk memuat ulang semua AppCard
yang tersedia di pemilih AppCard. Jika otorisasi adalah {@code null}
, seluruh
paket akan ditambahkan.
fun onPackageCommunicationError(appIdentifier, Throwable)
AppCardHost
mengalami error saat
berkomunikasi dengan penyedia AppCard.
Contoh penggunaan. Gunakan metode ini untuk menunjukkan kepada pengguna bahwa AppCard yang telah mereka pilih mengalami error.
API
fun refreshCompatibleapp()
fun destroy()
fun registerListener(AppCardListener)
AppCardListener
.fun unregisterListener(AppCardListener)
AppCardListener
.fun getAllAppCards(AppCardContext)
AppCardListener
terdaftar dengan semua
AppCard yang disediakan dalam sistem dengan AppCardContext
tertentu yang
memberikan petunjuk kepada penyedia tentang cara menyusun AppCard mereka.fun requestAppCard(AppCardContext, appIdentifier, String)
AppCardListener
terdaftar dengan
AppCard tertentu, dengan AppCardContext
yang memberikan petunjuk kepada penyedia
cara menyusun AppCard mereka.fun notifyAppCardRemoved(appIdentifier, String)
fun notifyAppCardInteraction(appIdentifier, String, String, String)
AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK
.
onClick
yang memanggil fungsi ini dengan appIdentifier
, ID AppCard, ID
komponen, dan ID interaksi.fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)
AppCardContext
untuk AppCard tertentu. Misalnya, saat
beralih dari mode Parkir ke mode Mengemudi, gunakan metode ini untuk mengirim
update AppCardContext
dengan isInteractable
ditetapkan ke false
untuk setiap
AppCard yang aktif.FAQ
Di mana saya dapat menemukan contoh penerapan?
Contoh host. Menampilkan semua AppCard yang tersedia di sistem, beserta kemampuan pengujian.
DriverUI dan Pengelola Pano. Pengelola Pano bertindak sebagai pemilih, sedangkan DriverUI bertindak sebagai presenter.
Berapa banyak AppCard yang dapat didukung setiap
AppCardContentProvider
?AppCardContentProvider
dapat mendukung AppCard dalam jumlah yang tidak terbatas. Namun, pastikan untuk menyeimbangkan jumlah AppCard dengan performa yang menurun versus pengalaman pengguna yang positif.