פעולות באפליקציה למכוניות

שליטה באמצעות הקול מאפשרת לנהגים לבצע משימות בלי להסיר את הידיים שלהם את ההגה או העיניים שלהם מהכביש. בעזרת 'פעולות באפליקציה' באפליקציות למכוניות, נהגים יכולים להשתמש ב-Google Assistant כדי לשלוט באפליקציות ל-Android במערכת המידע והבידור: אמירת משפטים כמו "Ok Google, find Street parking on ExampleApp".

התכונה 'פעולות באפליקציה' פועלת עם אפליקציות לרכב מסוג נקודות עניין (POI). מדריך זה עוסק דרישות ומגבלות ספציפיות לשילוב 'פעולות באפליקציה' בנקודת העניין שלך אפליקציה.

איך זה עובד

הפעולות באפליקציה מרחיבות את הפונקציונליות בתוך האפליקציה ל-Assistant, ומאפשרות למשתמשים גישה לתכונות האפליקציה באמצעות הקול. כשמשתמש מפעיל פעולה באפליקציה, Assistant מתאימה את השאילתה ל-Intent מובנה (BII) שהוצהר באפליקציה משאב shortcuts.xml, שמפעיל את האפליקציה במסך המבוקש.

זוהי הצהרה על תמיכה ב-BII באפליקציה שלך באמצעות רכיבי capability של Android. כשמעלים את האפליקציה באמצעות מסוף Google Play, Google רושמת את היכולות המוצהרות באפליקציה ומאפשרות למשתמשים לגשת אליהן מ-Assistant.

תרשים שמציג את מילוי ההזמנות של הרכב.

  1. משתמש מפעיל את Assistant ושולח בקשה קולית לאפליקציה ספציפית.
  2. Assistant מתאימה את הבקשה למודל שעבר אימון מראש (BII), וחלְצֵי-נתונים (extracts) פרמטרים שנתמכים על ידי ה-BII.
  3. בדוגמה הזו, Assistant מתאימה את השאילתה לGET_CHARGING_STATION BII, מחלץ את פרמטר המיקום "SFO" ומתרגם את המיקום ל את הקואורדינטות הגיאוגרפיות שלו.
  4. האפליקציה מופעלת דרך הגדרת האספקה שלה עבור ה-BII הזה.
  5. האפליקציה מעבדת את מילוי ההזמנה ומציגה אפשרויות לתחנות הטעינה במערכת המידע והבידור של הנהג.

מגבלות

יישומים של 'פעולות באפליקציה' ברכב כרוכים במגבלות הבאות:

הדרישות

כדי להכין את אפליקציית הרכב לפעולות באפליקציה:

  • לעמוד בדרישות הכלליות של האפליקציה ל-Android לגבי הפעולות באפליקציה.
  • לכלול את התלות של ספריית האפליקציות ברכב. פרטים נוספים זמינים במאמר הצהרה על יחסי תלות.

הגדירו את הכוונה והמימוש שלכם

השלב הראשון בהפעלה קולית של אפליקציה לרכב עם 'פעולות באפליקציה' הוא אילו פקודות קוליות או כוונות של משתמשים נתמכות באפליקציה שלכם. לאחר מכן מגדירים של כל Intent במטרה לציין איך האפליקציה צריכה למלא את הבקשה.

  • אילו Intentים נתמכים באפליקציה לרכב שלך?

    התכונה 'פעולות באפליקציה' מספקת תבניות קול שעברו אימון מראש, שנקראות כוונות מובנות (BII), שיכול להבין ולפרש את הפקודות הקוליות של משתמש כשהוא אומר, "Ok Google". כדי להגיב לבקשות קוליות, צריך רק להצהיר על כך ל-Assistant את ה-BII שהאפליקציה שלך תומכת בו. לדוגמה, אם רוצים שהאפליקציה תעזור באיתור מתקן חניה, עליכם להטמיע את התכונה GET_PARKING_FACILITY BII. לחלופין, להטמיע את חוק BII של GET_CHARGING_STATION כדי לעזור למשתמשים למצוא תחנות טעינה לרכבים.

  • איך האפליקציה צריכה למלא את כל הכוונה?

    האפליקציה ממלאת את הבקשה הקולית בכך שהיא מפעילה את עצמה מסך. השירות 'פעולות באפליקציה' מספק פרמטרים שנשלפו מתוך האפליקציה למילוי ההזמנות לבקשת המשתמש, וכך להתאים את התגובה שלך לצרכים של המשתמש.

שילוב של 'פעולות באפליקציה'

אחרי שתחליטו על אסטרטגיית מילוי ההזמנות, בצעו את השלבים הבאים כדי להפעיל את התכונה הקולית אפליקציית הרכב שלך:

  1. פותחים את הפעילות העיקרית שלכם AndroidManifest.xml ומצהירים על תמיכה ב-Android נעשה שימוש ברכיבי קיצור דרך של capability כדי להצהיר (declare) ב-Assistant את ה-BII שהאפליקציה שלך תומכת בו. מידע נוסף זמין במאמר הבא: הוספת יכולות.

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. בשלב הבא, מוסיפים רכיב <intent-filter> אל AndroidManifest.xml. הזה שמאפשר ל-Assistant להשתמש בקישורי עומק כדי להתחבר לתוכן של האפליקציה.

    • למילוי הזמנות של Android Auto, המאפיין <intent-filter> זהה באפליקציה לנייד.

    • ב-Android Automotive OS, הסשן של האפליקציה CarAppService מופעל עוזר/ת. כדי לאפשר לסשן להפעיל את קישור העומק, צריך לציין <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>
    
  3. אם עדיין אין לך קובץ 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>
    
  4. לסיום, צריך לעדכן את הלוגיקה 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
     ...
    }
    }

תצוגה מקדימה, בדיקה ופרסום של האפליקציה

האפליקציה 'פעולות באפליקציה' מספקת כלים לתצוגה מקדימה ולבדיקה של האפליקציה. נכנסים אל סקירה כללית של 'פעולות באפליקציה' לקבלת מידע על הכלי הזה, ופרטים על איך לפרסם את אפליקציית הרכב שמופעלת באמצעות הקול בחנות Play.