אפשר להשתמש ב-AppCardHost
כדי לתקשר עם אפליקציות שמוצגות בהן כרטיסי אפליקציות.
הרשאות
לכל אפליקציה שמשתמשת ב-AppCardHost
צריכות להיות ההרשאות הבאות:
android.permission.INTERACT_ACROSS_USERS_FULL
android.permission.QUERY_ALL_PACKAGES
- (ברמת API 34 ואילך בלבד)
android.car.permission.BIND_APP_CARD_PROVIDER
התחל
כדי לאתחל את המארח, צריך לספק את הפרטים הבאים:
- הקשר
- שיעור העדכון של
updateRate
AppCard באלפיות השנייה. fastUpdateRate
קצב העדכון באלפיות השנייה לרכיבים שמסומנים בתגEnforceFastUpdateRate
responseExecutor
שרשור שבו רוצים לקבל תשובות מאפליקציות AppCard.
עיצוב
אפשר לבצע פעולות עם AppCardHost
בשתי דרכים:
- רישום כ-
AppCardListener
או
- אינטראקציה עם ממשקי ה-API של
AppCardHost
AppCardListener
הרכיב AppCardListener
מתעדכן ב-AppCardHost
כדי לקבל עדכוני תקשורת מאפליקציית AppCardHost
ומ-AppCard.
כאן מפורטות פונקציות הממשק של AppCardListener
.
fun onAppCardReceived(AppCardContainer)
AppCardContainer
שמספק כרטיס אפליקציה ו-appIdentifier
כדי לזהות את האפליקציה ששלחה את כרטיס האפליקציהfun onComponentReceived(AppCardComponentContainer)
AppCardComponentContainer
, שמספק רכיב של כרטיסי אפליקציה, Identifier
, כדי לזהות את האפליקציה ששלחה את כרטיס האפליקציה, ומזהה מחרוזת כדי להצביע על כרטיס האפליקציה שאליו הרכיב קשור.fun onProviderRemoved(String, String?)
אם הערך של authority הוא {@code null}
, המשמעות היא שהחבילה כולה הוסרה.
fun onProviderAdded(String, String?)
דוגמה לשימוש אפשר להשתמש בפונקציה הזו כטריגר כדי לרענן את כל כרטיסי האפליקציות הזמינים בבורר של כרטיסי האפליקציות. אם הערך של authority הוא {@code null}
, המשמעות היא שנוספה חבילה שלמה.
fun onPackageCommunicationError(appIdentifier, Throwable)
AppCardHost
נתקל בשגיאה בתקשורת עם ספק של כרטיס AppCard.
דוגמה לשימוש משתמשים בשיטה הזו כדי להציג למשתמש שהתרחשה שגיאה ב-AppCard שבחר.
ממשקי API
fun refreshCompatibleapp()
fun destroy()
fun registerListener(AppCardListener)
AppCardListener
.fun unregisterListener(AppCardListener)
AppCardListener
.fun getAllAppCards(AppCardContext)
AppCardListener
הרשום את כל כרטיסי ה-AppCard שסופקו במערכת עם AppCardContext
נתון, שמספק לספקים טיפים לגבי מבנה של כרטיס ה-AppCard שלהם.fun requestAppCard(AppCardContext, appIdentifier, String)
AppCardListener
רשום AppCard ספציפי, על סמך AppCardContext
שמספק לספקים טיפים לגבי מבנה ה-AppCard שלהם.fun notifyAppCardRemoved(appIdentifier, String)
fun notifyAppCardInteraction(appIdentifier, String, String, String)
AppCardMessageConstants.InteractionMessageConstants.MSG_INTERACTION_ON_CLICK
.
onClick
שמפעיל את הפונקציה הזו עם appIdentifier
, מזהה AppCard, מזהה רכיב ומזהה אינטראקציה.fun sendAppCardContextUpdate(AppCardContext, appIdentifier, String)
AppCardContext
של כרטיס אפליקציה ספציפי. לדוגמה, כשעוברים ממצב 'חניה' למצב 'נסיעה', משתמשים בשיטה הזו כדי לשלוח עדכון AppCardContext
שבו isInteractable
מוגדר ל-false
לכל כרטיס אפליקציה פעיל.שאלות נפוצות
איפה אפשר למצוא הטמעות לדוגמה?
מארח לדוגמה. כאן מוצגות כל כרטיסי האפליקציות שזמינים במערכת, יחד עם יכולות הבדיקה.
DriverUI ו-Pano Manager. מנהל Pano פועל בתור הבורר, ו-DriverUI פועל בתור המציג.
כמה כרטיסי אפליקציה כל
AppCardContentProvider
יכול לתמוך?AppCardContentProvider
יכול לתמוך במספר אינסופי של כרטיסי אפליקציה. עם זאת, חשוב לאזן בין מספר כרטיסי האפליקציות לבין פגיעה בביצועים לעומת חוויית משתמש חיובית.