אפשר להשתמש ב-AppCardHost כדי לתקשר עם אפליקציות שמוצגות בהן כרטיסי אפליקציות.
הרשאות
לכל אפליקציה שמשתמשת ב-AppCardHost צריכות להיות ההרשאות הבאות:
android.permission.INTERACT_ACROSS_USERS_FULLandroid.permission.QUERY_ALL_PACKAGES- (ברמת API 34 ואילך בלבד)
android.car.permission.BIND_APP_CARD_PROVIDER
התחל
כדי לאתחל את המארח, צריך לספק את הפרטים הבאים:
- הקשר
- שיעור העדכון של
updateRateAppCard באלפיות השנייה. fastUpdateRateקצב העדכון באלפיות השנייה לרכיבים שמסומנים בתגEnforceFastUpdateRateresponseExecutorשרשור שבו רוצים לקבל תשובות מאפליקציות 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יכול לתמוך במספר אינסופי של כרטיסי אפליקציה. עם זאת, חשוב לאזן בין מספר כרטיסי האפליקציות לבין פגיעה בביצועים לעומת חוויית משתמש חיובית.