השליטה הקולית מאפשרת לנהגים לבצע משימות בלי להוריד את הידיים מההגה או להסיט את המבט מהכביש. בעזרת פעולות באפליקציות לרכב, נהגים יכולים להשתמש ב-Gemini או ב-Google Assistant כדי לשלוט באפליקציות ל-Android במערכת המולטימדיה. למשל, הם יכולים להגיד "Ok Google, תמצא חנייה ברחוב באפליקציה ExampleApp".
התכונה 'פעולות באפליקציה' פועלת עם אפליקציות לרכב שמציגות נקודות עניין. במדריך הזה מוסברות הדרישות וההגבלות הספציפיות לשילוב פעולות באפליקציה באפליקציית POI.
איך זה עובד
פעולות באפליקציה מרחיבות את הפונקציונליות של האפליקציה ל-Gemini או ל-Google Assistant, ומאפשרות למשתמשים לגשת לתכונות של האפליקציה באמצעות הקול שלהם. כשמשתמש מפעיל פעולה באפליקציה, Gemini או Google Assistant משייכים את השאילתה ל-BII מוכן מראש שמוצהר במשאב shortcuts.xml של האפליקציה, ומפעילים את האפליקציה במסך המבוקש.
מצהירים על תמיכה בממשקי BII באפליקציה באמצעות רכיבי capability של Android.
כשמעלים את האפליקציה באמצעות מסוף Google Play, Google רושמת את היכולות שצוינו באפליקציה ומאפשרת למשתמשים לגשת אליהן מ-Gemini או מ-Google Assistant.
- משתמש מפעיל את Gemini או את Google Assistant ומבקש הפעלה קולית של אפליקציה ספציפית.
- Gemini או Google Assistant מתאימים את הבקשה למודל שאומן מראש (BII), ומחלצים ממנו פרמטרים נתמכים.
- בדוגמה הזו, Gemini או Google Assistant מתאימים את השאילתה ל-
GET_CHARGING_STATIONBII, מחלצים את פרמטר המיקום SFO ומתרגמים את המיקום לקואורדינטות הגיאוגרפיות שלו. - האפליקציה מופעלת באמצעות הגדרת הביצוע שלה עבור ה-BII הזה.
- האפליקציה מעבדת את מילוי הבקשה ומציגה אפשרויות של תחנות טעינה במערכת מולטימדיה של הנהג.
מגבלות
ההטמעות של פעולות באפליקציה ברכבים כפופות למגבלות הבאות:
צריך להשתמש בקישורי עומק ב-Android כדי להפעיל פעולות באפליקציות לרכב. מידע על השלמת פעולות באפליקציה זמין במאמר הוספת פרטים להשלמת כוונות מוכללות.
הטמעות במכוניות תומכות רק בממשקי BII הבאים:
- חניה –
GET_PARKING_FACILITY - בטעינה –
GET_CHARGING_STATION
- חניה –
דרישות
כדי להכין את אפליקציית הרכב לפעולות באפליקציה:
- עומדים בדרישות הכלליות של אפליקציות ל-Android לשימוש בפעולות באפליקציה.
- כוללים את התלות בספריית האפליקציות לרכב. פרטים נוספים זמינים במאמר בנושא הצהרה על יחסי תלות.
קביעת הכוונה והשלמת ההזמנה
השלב הראשון בהוספת תמיכה קולית לאפליקציה לרכב באמצעות פעולות באפליקציה הוא לקבוע אילו פקודות קוליות של משתמשים, או כוונות, נתמכות באפליקציה. לאחר מכן מגדירים מימוש לכל כוונה כדי לציין איך האפליקציה צריכה למלא את הבקשה.
אילו כוונות נתמכות באפליקציה לרכב?
תכונת הפעולות באפליקציות מספקת מודלים קוליים שאומנו מראש, שנקראים כוונות מוכללות (BII). המודלים האלה יכולים להבין ולפרש את הפקודות הקוליות של המשתמשים כשהם אומרים Ok Google. כדי להגיב לבקשות קוליות, פשוט מציינים ל-Gemini או ל-Google Assistant את ה-BII שהאפליקציה תומכת בהן. לדוגמה, אם רוצים שהאפליקציה תעזור למצוא חניון, מטמיעים את ה-BII
GET_PARKING_FACILITY. לחלופין, אפשר להטמיעGET_CHARGING_STATIONBII כדי לעזור למשתמשים למצוא תחנות טעינה לרכבים חשמליים.איך האפליקציה צריכה למלא כל כוונה?
האפליקציה מבצעת את הבקשה הקולית על ידי הפעלה של עצמה במסך המתאים. תכונת הפעולות באפליקציה מספקת לכם פרמטרים שחולצו מבקשת המשתמש, וכך מאפשרת לכם להתאים את התגובה לצרכים של המשתמש.
שילוב של פעולות באפליקציה
אחרי שקובעים את אסטרטגיית הביצוע, פועלים לפי השלבים הבאים כדי להוסיף תמיכה בפקודות קוליות לאפליקציה לרכב:
פותחים את הפעילות הראשית
AndroidManifest.xmlומצהירים על תמיכה בקיצורי דרך ב-Android. אתם משתמשים ברכיבי קיצור הדרךcapabilityכדי להצהיר ל-Gemini או ל-Google Assistant על ממשקי ה-BII שהאפליקציה שלכם תומכת בהם. מידע נוסף זמין במאמר בנושא הוספת יכולות.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />לאחר מכן, מוסיפים רכיב
<intent-filter>ל-AndroidManifest.xml. כך Gemini או Google Assistant יכולים להשתמש בקישורים עמוקים כדי להתחבר לתוכן של האפליקציה.לצורך ביצוע הזמנות ב-Android Auto, הערך של
<intent-filter>זהה לערך של אפליקציית המובייל.ב-Android Automotive OS, הפעלת סשן של
CarAppServiceבאפליקציה מפעילה את Gemini או את Google Assistant. כדי לאפשר להפעיל את קישור העומק במהלך סשן, צריך לציין<intent-filter>באלמנט<activity>שלAndroidManifest.xml.
<!-- AndroidManifest.xml --> <activity ... android:name="androidx.car.app.activity.CarAppActivity"> ... <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="YOUR_SCHEME" android:host="YOUR_HOST" /> </intent-filter> </activity>אם עדיין אין לכם קובץ
shortcuts.xmlבספרייה של האפליקציה, אתם צריכים ליצור קובץ חדש.res/xmlמידע על השימוש בקיצורי דרך של Android בפעולות באפליקציות זמין במאמר בנושא יצירת קובץ shortcuts.xml.ב-
shortcuts.xml, מטמיעיםcapabilityעבור ה-BII שבחרתם. לאחר מכן, מוסיפים<intent>מקונן כדי להגדיר את השלמת הפעולה באפליקציה.<!-- shortcuts.xml --> <?xml version="1.0" encoding="utf-8"?> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.GET_PARKING_FACILITY"> <intent> <url-template android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}"> <!-- Facility name, e.g. "Googleplex" --> <parameter android:name="parkingFacility.name" android:key="name"/> <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" --> <parameter android:name="parkingFacility.address" android:key="address"/> <!-- Disambiguate the type of service, e.g. "valet" --> <parameter android:name="parkingFacility.disambiguatingDescription" android:key="disambiguatingDescription"/> <!-- Latitude, e.g. "37.3861" --> <parameter android:name="parkingFacility.geo.latitude" android:key="latitude"/> <!-- Longitude, e.g. "-122.084" --> <parameter android:name="parkingFacility.geo.longitude" android:key="longitude"/> </intent> </capability> </shortcuts>לבסוף, מעדכנים את הלוגיקה של
Session()באפליקציה לרכב כדי לטפל בביצוע של פעולות האפליקציה הנכנסות. בדוגמאות הבאות אפשר לראות איך מטפלים בכוונות שלSession.onCreateScreen()ושלSession.onNewIntent().onCreateScreen()
Kotlin
@Override fun onCreateScreen(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public Screen onCreateScreen(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
onNewIntent()
Kotlin
@Override fun onNewIntent(@NonNull intent: Intent): Screen { if (intent.getData() != null) { val uri: Uri = intent.getData() // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
Java
@Override public void onNewIntent(@NonNull Intent intent) { if (intent.getData() != null) { Uri uri = intent.getData(); // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center" // Build your Templates with parsed uri parameters ... } }
תצוגה מקדימה, בדיקה ופרסום של האפליקציה
תכונת פעולות באפליקציה מספקת כלים לתצוגה מקדימה ולבדיקה של האפליקציה. באתר App Actions overview יש מידע על הכלים האלה ופרטים על אופן הפרסום של אפליקציית רכב עם הפעלה קולית בחנות Play.