הרחבה של אפליקציה ל-Android ל-Google Assistant באמצעות פעולות באפליקציה (רמה 2)

1. סקירה כללית

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

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

ב-codelab הזה תלמדו איך להוסיף פעולות באפליקציה לאפליקציה באמצעות BIIs מהקטגוריה 'נפוצות' של BIIs, שמייצגת משימות נפוצות באפליקציה שניתן לבצע כמעט בכל אפליקציית Android.

ב-codelab הזה נסביר מושגים ברמת ביניים לפיתוח פעולות באפליקציות. צריך להיות לכם ניסיון קודם בפיתוח אפליקציות ל-Android ובהטמעה של כוונות (intents) ב-Android.

מה תפַתחו

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

שלושה מסכים מתקדמים שבהם Google Assistant מציגה משימות פעילות באפליקציה.

איור 1. שלושה מסכים מתקדמים שבהם Google Assistant מציגה משימות פעילות באפליקציה.

מה תלמדו

תלמדו איך להשתמש ב-BIIs נפוצים מקטגוריה B כדי להרחיב את השימוש ב-Assistant לרוב אפליקציות Android. בנוסף, תלמדו איך לבדוק ממשקי BII נפוצים באמצעות הפלאגין של Google Assistant ל-Android Studio.

דרישות מוקדמות

ב-codelab הזה, משתמשים במכשיר Android (פיזי או וירטואלי) כדי לבדוק את הפעולות. אם משתמשים במכשיר פיזי, צריך לוודא שהוא מחובר למכונת הפיתוח המקומית. בנוסף, אתם צריכים להיות מחוברים לאפליקציית Google במכשיר ומחוברים ל-Android Studio באמצעות אותו חשבון Google. במכשיר צריכה להיות מותקנת גם אפליקציית Google Assistant.

2. איך זה עובד

פעולות באפליקציה מקשרות משתמשים מ-Google Assistant לאפליקציית Android שלכם. אבל איך הן פועלות?

כשמשתמש מציין ל-Assistant שהוא רוצה להשתמש באפליקציה שלכם, Assistant מחפש פעולות באפליקציה שרשומות באפליקציה שלכם מתוך קובץ shortcuts.xml. הקובץ הזה מכיל את היכולות של האפליקציה, שמקשרות בין כוונה מובנית או כוונה בהתאמה אישית של Assistant לבין כוונה או קישור עומק של Android.

כשמשתמש אומר שאילתה לעוזר האישי, העוזר האישי מנתח את הקלט של המשתמש ומתאים אותו לכוונת פעולה באפליקציה (ב-Codelab הזה, זו תהיה BII). העוזר הדיגיטלי יודע אילו יכולות אתם תומכים בהן מתוך קובץ shortcuts.xml באפליקציית Android שלכם. בהתאמה לכוונת המשתמש, היכולת עם ה-BII הזה מכילה את האופן שבו אתם רוצים למלא את הבקשה הזו. ב-codelab הזה, ההשלמה היא intent של Android שמפעיל פעילות באפליקציה.

התרשים הבא מציג את התהליך הזה ב-Assistant:

תרשים זרימה שמתאר איך שאילתת חיפוש קולית של משתמש\מעובדת על ידי Google Assistant.איור 2. תרשים שמראה איך Google Assistant מעבדת שאילתה קולית.

קובץ הפרויקט shortcuts.xml מכיל את הפרטים הבאים לגבי כל פעולת אפליקציה:

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

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

3. הכנת סביבת הפיתוח

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

הורדת קבצי הבסיס

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

git clone --branch codelab-start https://github.com/actions-on-google/appactions-common-biis-kotlin.git

אחרי שיבוט המאגר, פועלים לפי השלבים הבאים כדי לפתוח אותו ב-Android Studio:

  1. בתיבת הדו-שיח Welcome to Android Studio (ברוכים הבאים ל-Android Studio), לוחצים על Import project (ייבוא פרויקט).
  2. מוצאים את התיקייה שבה שיבטתם את המאגר ובוחרים בה.

כדי לראות גרסה של האפליקציה שמייצגת את ה-codelab המלא, משכפלים את מאגר האפליקציה לדוגמה באמצעות הדגל --branch master.

עדכון מזהה האפליקציה ל-Android

עדכון מזהה האפליקציה של האפליקציה מזהה באופן ייחודי את האפליקציה במכשיר הבדיקה ומונע את השגיאה 'שם חבילה כפול' אם האפליקציה מועלית ל-Play Console. כדי לעדכן את מזהה האפליקציה, פותחים את app/build.gradle:

android {
...
  defaultConfig {
    applicationId "com.MYUNIQUENAME.android.fitactions"
    ...
  }
}

מחליפים את הערך MYUNIQUENAME בשדה applicationId במשהו ייחודי לכם.

בדיקת האפליקציה במכשיר

לפני שמבצעים שינויים נוספים באפליקציה, כדאי להבין מה האפליקציה לדוגמה יכולה לעשות. כדי להריץ את האפליקציה באמולטור, פועלים לפי השלבים הבאים:

  1. ב-Android Studio, בוחרים באפשרות Run (הרצה) > Run app (הרצת האפליקציה) או לוחצים על Run (הרצה) בסרגל הכלים.
  2. בתיבת הדו-שיח Select Deployment Target, בוחרים מכשיר ולוחצים על OK. גרסת מערכת ההפעלה המומלצת היא Android 10 (רמת API‏ 30) ומעלה, למרות שהפעולות פועלות במכשירים עד Android 5 (רמת API‏ 21).
  3. לוחצים לחיצה ארוכה על הכפתור הראשי כדי להגדיר את Assistant ולוודא שהיא פועלת. אם עדיין לא נכנסתם לחשבון שלכם ב-Assistant במכשיר, תצטרכו לעשות זאת.

מידע נוסף על מכשירים וירטואליים של Android זמין במאמר יצירה וניהול של מכשירים וירטואליים.

אנימציה שמציגה את אפליקציית הדוגמה של רשימת המטלות

איור 3. אנימציה שמדגימה את אפליקציית הדוגמה של רשימת המשימות.

כדאי לעיין באפליקציה כדי להבין מה היא יכולה לעשות. בלחיצה על סמל הפלוס אפשר ליצור משימה חדשה, ובעזרת האפשרויות בתפריט שבפינה השמאלית העליונה אפשר לחפש משימות ולסנן אותן לפי סטטוס הביצוע.

התקנת פלאגין הבדיקה

התוסף Google Assistant מאפשר לכם לבדוק את פעולות האפליקציה במכשיר בדיקה. אם עדיין אין לכם את כלי הבדיקה, אתם צריכים להתקין אותו לפי השלבים הבאים:

  1. עוברים אל File > Settings (קובץ > הגדרות) (Android Studio > Preferences (הגדרות) ב-MacOS).
  2. בקטע Plugins (פלאגינים), עוברים אל Marketplace ומחפשים את Google Assistant. אפשר גם להוריד ולהתקין את כלי הבדיקה באופן ידני.
  3. מתקינים את הכלי ומפעילים מחדש את Android Studio.

4. הוספת היכולת Get Thing BII

ה-BII‏ actions.intent.GET_THING מרחיב את פונקציית החיפוש באפליקציה ל-Google Assistant. בשלב הזה תטמיעו ותבדקו את GET_THING BII, כדי לאפשר למשתמשים לחפש משימות ספציפיות באפליקציה לדוגמה.

הגדרת היכולת Get Thing

במהלך פעולה באפליקציה שקשורה לחיפוש, Assistant מחלצת מונחי חיפוש משאילתת המשתמש לפרמטר thing.name BII, ואז מעבירה את הערך הזה לאפליקציה ל-Android.

כדי להוסיף את ה-BII‏ GET_THING לאפליקציה, מעדכנים את shortcuts.xml, שנמצא בספריית פרויקט הדוגמה app/src/main/res/xml, עם רכיב <capability> בתוך התג <shortcuts> ברמה העליונה:

shortcuts.xml

<shortcuts ....>
    <capability android:name="actions.intent.GET_THING">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.yourApplicationId.appaction"
            android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
            <parameter
                android:name="thing.name"
                android:key="q"/>
        </intent>
    </capability>
</shortcuts>

ההגדרה שלמעלה:

  1. מצהיר שהאפליקציה מגיבה ל-BII‏ GET_THING.
  2. המדיניות מציינת איך ליצור intent של Android שמפעיל את האפליקציה בתגובה ל-BII הזה.
    • הפעילות מזוהה באמצעות targetPackage ו-targetClass.
    • הפרמטר thing.name של BII ממופה ל-Intent‏ Extra בשם q.

הפעילות שצוין השם שלה חייבת להיות במניפסט של האפליקציה ולייצא אותה.

אפליקציה ל-Android ששלחת מכילה מטא-נתונים, ולכן קובץ AndroidManifest מודע לקובץ shortcuts.xml:

<meta-data
   android:name="android.app.shortcuts"
   android:resource="@xml/shortcuts" />

בדיקת פעולה באפליקציה

כדי לבדוק את החיפוש באפליקציה שלכם מ-Assistant, פועלים לפי השלבים הבאים:

  1. מוודאים שמכשיר Android מחובר.
  2. עוברים אל כלים > Google Assistant > כלי לבדיקת פעולות באפליקציות.
  3. לוחצים על יצירת תצוגה מקדימה כדי לאשר את ערכי ברירת המחדל של שם האפליקציה והלוקאל. אם תופיע בקשה, תצטרכו לקרוא את התנאים וההגבלות ואת מדיניות 'פעולות באפליקציה' ולאשר אותם.
  4. בשלב הראשון שבו הכלי מבקש לבחור ולהגדיר BII, בוחרים באפשרות actions.intent.GET_THING. משנים את הערך של name מ-running shoes ל-milk.
  5. לוחצים על הפעלת פעולת אפליקציה.

בבדיקה הזו, GET_THING BII משתמש במאפיין name כדי לחפש באפליקציה משימות שמכילות את המילה 'חלב'. בדומה לפעולת האפליקציה הקודמת, אפשר לבדוק את הפעולה באמצעות כלי הבדיקה, או פשוט לומר "Ok Google, חפש תערובת לעוגה ברשימת המשימות" או ביטויי חיפוש אחרים במכשיר הבדיקה.

5. הוספת יכולת BII של התכונה 'פתיחת אפליקציה'

בשלב הזה מטמיעים את תכונת ה-BII של פתיחת אפליקציה, כדי לאפשר למשתמשים לראות את המשימות הפעילות והמושלמות שלהם באמצעות Assistant. כדי לעשות זאת, משלימים את היכולת ב-shortcuts.xml, שכוללת מידע על האופן שבו היכולת מופעלת, על האופן שבו הפרמטרים מועברים ועל כוונות Android להפעלה. ב-codelab הזה תשתמשו ב-OPEN_APP_FEATURE BII. אחרי שמטמיעים את ה-BII הזה, בודקים את הפעולה במכשיר.

הוספת היכולת 'פתיחת האפליקציה'

מוסיפים יכולת שנייה לתכונה Open app (פתיחת אפליקציה) ב-shortcuts.xml מתחת לרכיב Get Thing Capability (קבלת יכולת של דבר):

shortcuts.xml

<capability android:name="actions.intent.OPEN_APP_FEATURE">
   <intent
       android:action="android.intent.action.VIEW"
       android:targetPackage="yourApplicationId"
       android:targetClass="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity">
       <parameter
           android:name="feature"
           android:key="feature"/>
   </intent>
</capability>

היכולת הזו ממפה את ה-BII של התכונה 'פתיחת אפליקציה' ואת ה-Intent של Android יחד, כך שכשהתכונה 'פתיחת אפליקציה' מופעלת, ה-Intent של Android מופעל.

לפני הפעלת ה-Intent של Android, פרמטרים נתמכים נשלפים מהקלט של המשתמש. ה-BII‏ OPEN_APP_FEATURE תומך בפרמטר אחד, feature, שמייצג את תכונת האפליקציה שחולצה משאילתת המשתמש. יש שני סוגים של תכונות שהאפליקציה הזו תתמוך בהן: משימה פעילה ומשימה שהושלמה. התכונות האלה מאפשרות למשתמשים לפתוח את האפליקציה עם תצוגה מסוננת של רשימת המשימות שלהם. כדי להשתמש בתכונות האלה, צריך להשתמש במלאי שטחי פרסום מוטמע.

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

פרמטרים של כוונת המשתמש מייצגים את הרכיבים שחולצו משאילתת משתמש. לדוגמה, אם משתמש אומר משהו כמו "Ok Google, תזמין פיצה מ-ExampleApp",‏ Assistant מחלץ את המילה "פיצה" לפרמטר של כוונת משתמש food.item schema.org, ומעביר את הפרמטר לפעולה שלכם כדי לטפל בו.

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

כדי לטפל בפרמטר של הכוונה feature, מוסיפים קיצור דרך ל-shortcuts.xml עם הקוד הבא מעל היכולת של תכונת פתיחת האפליקציה:

shortcuts.xml

<shortcut
   android:shortcutId="active_tasks"
   android:shortcutShortLabel="@string/label_active"
   android:enabled="false">
   <capability-binding
       android:key="actions.intent.OPEN_APP_FEATURE">
       <parameter-binding
           android:key="feature"
           android:value="@array/active_tasks_synonyms" />
   </capability-binding>
</shortcut>

<shortcut
   android:shortcutId="completed_tasks"
   android:shortcutShortLabel="@string/label_completed"
   android:enabled="false">
   <capability-binding
       android:key="actions.intent.OPEN_APP_FEATURE">
       <parameter-binding
           android:key="feature"
           android:value="@array/completed_tasks_synonyms" />
   </capability-binding>
</shortcut>

בדוגמה שלמעלה, הגדרתם מלאי שטחי פרסום מוטבע, שמיוצג כרכיבי shortcut עם קישורי יכולות ופרמטרים. אפשר להשתמש בקיצורי דרך כמלאי שטחי פרסום לפרמטרים של BII. ‫Google Assistant מתאימה את שאילתת המשתמש לערכים בהתאמת הפרמטרים של קיצורי הדרך. אם יש התאמה לערך של פרמטר, הערך shortcutId יתווסף לכוונת ההשלמה. כשמשתמש מפעיל את OPEN_APP_FEATURE BII עם בקשה, Assistant מתאים את ערך הפרמטר של התכונה לערך המאפיין של קיצור הדרך, ומעביר את הערך אל targetClass בתור parameter ב-Extra.

לדוגמה, אם משתמש אומר משהו כמו "Ok Google, תציג את המשימות שהושלמו באפליקציה ExampleApp",‏ Assistant מתאימה את הערך של פרמטר הכוונה של התכונה, "משימות שהושלמו", לקיצור הדרך המתאים במלאי, ומעבירה את הערך הזה ליכולת OPEN_APP_FEATURE. לאחר מכן, Assistant מפעילה את הכוונה ב-Android.

בדיקת פעולה באפליקציה

במהלך הפיתוח והבדיקות, משתמשים בתוסף Google Assistant כדי לצפות בתצוגה מקדימה של פעולת האפליקציה באמצעות Assistant במכשיר בדיקה. אתם יכולים גם להשתמש בכלי כדי לשנות את פרמטר הכוונה של פעולה באפליקציה, ולבדוק איך הפעולה מטפלת בדרכים השונות שבהן משתמש יכול לבקש מ-Assistant להפעיל אותה.

כדי לבדוק את פעולת האפליקציה באמצעות כלי הבדיקה, פועלים לפי השלבים הבאים:

  1. מחברים את מכשיר הבדיקה הפיזי של Android או מפעילים את אמולטור Android
  2. אם הכלי לבדיקה לא מוצג, פותחים אותו דרך Tools > Google Assistant > App Actions Test Tool (כלים > Google Assistant > הכלי לבדיקת פעולות באפליקציה).
  3. לוחצים על הלחצן עדכון כדי לרענן את התצוגה המקדימה.
  4. בשלב הראשון שבו הכלי מבקש לבחור ולהגדיר BII, בוחרים באפשרות actions.intent.OPEN_APP_FEATURE.
  5. בתיבה feature, מעדכנים את ערך ברירת המחדל History ל-Completed tasks.
  6. לוחצים על הפעלת פעולת אפליקציה.

לחלופין, אפשר להשתמש בשם ההפעלה ישירות באפליקציית Assistant במכשיר כדי לנסות את פעולת האפליקציה. לדוגמה, אפשר להגיד "Ok Google, show completed tasks in Task List".

6. השלבים הבאים

מזל טוב!

עכשיו יש לכם אפשרות להפעיל כמעט כל אפליקציית Android באמצעות Google Assistant, באמצעות ממשקי BII נפוצים.

מה נכלל

ב-codelab הזה למדתם:

  • איך מאפשרים למשתמשים להגיע ישירות לתכונות ספציפיות באפליקציה באמצעות Assistant
  • איך משתמשים יכולים לגשת לחיפוש בתוך האפליקציה מ-Assistant.
  • איך בודקים ממשקי BII נפוצים באמצעות התוסף של Google Assistant.

השלבים הבאים

מכאן אפשר לנסות לשפר עוד את אפליקציית רשימת המשימות. כדי לעיין בפרויקט המוגמר, אפשר להיכנס למאגר –master branch ב-GitHub.

הנה כמה הצעות למידע נוסף על הרחבת האפליקציה באמצעות פעולות באפליקציה:

כדי להמשיך את המסע שלכם עם Actions on Google, כדאי לעיין במקורות המידע הבאים:

כדי להתעדכן בהודעות האחרונות שלנו, אתם יכולים לעקוב אחרינו בטוויטר ‎@ActionsOnGoogle. כדי לשתף את מה שיצרתם, אתם יכולים לצייץ עם ההאשטאג #AoGDevs.

סקר משוב

לבסוף, נשמח אם תמלאו את הסקר הזה כדי לתת משוב על חוויית השימוש שלכם ב-codelab הזה.