קיצורי דרך ל-Android מספקים למשתמשים שיטות מהירות לביצוע פעולה או לגישה לתוכן באפליקציה. Assistant יכולה להציע למשתמשים באופן יזום את קיצורי הדרך הדינמיים שלכם ל-Android בזמנים רלוונטיים, וכך לאפשר להם לגלות בקלות את הפונקציונליות שלכם מבוססת-הקול ולהפעיל אותה מחדש.
לדוגמה, ניתן להעביר ב-push קיצור דרך לכל הערה שמשתמש יצר
את אפליקציית פתקים שלכם. הרווחת
קישורים דינמיים שעומדים בדרישות להצגה בפלטפורמות של Google, כמו Assistant,
על ידי הוספה של ספריית Jetpack לשילוב של Google קיצורי דרך לפרויקט שלכם.
הספרייה הזו מאפשרת ל-Assistant להשתמש בקיצורי דרך דינמיים שמעבירים בדחיפה באמצעות
ShortcutManagerCompat
, שהיא wrapper של Jetpack
API של ShortcutManager
.
כשמשתמשים בספריית השילוב של קיצורי הדרך של Google באפליקציה, התהליך דינמי
קיצורי דרך שמועברים בדחיפה ל-Google גלויים למשתמשים כהצעות לקיצורי דרך קוליים
באפליקציית Assistant. ניתן להעביר מספר בלתי מוגבל של קיצורי דרך דינמיים
Assistant באמצעות השיטה pushDynamicShortcut()
של
הספרייה ShortcutManagerCompat
.
הגדרת פרויקט הפיתוח
כדי להוסיף לאפליקציה פונקציונליות של קיצורי דרך דינמיים, צריך את ספריית השילוב של Google Shortcuts, שהיא ספריית Android Jetpack. בקטע הזה נסביר איך להגדיר את פרויקט פיתוח האפליקציה כך שיכלול אותם הספרייה הזו.
כדי להוסיף את ספריית Jetpack הזו ולהגדיר את הפרויקט:
צריך לעדכן את הקובץ
gradle.properties
כדי לטפל בספריות Jetpack:gradle.properties
android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true
מוסיפים את יחסי התלות של ספריית Jetpack ל-
build.gradle
:app/build.gradle
dependencies { implementation "androidx.core:core:1.6.0" implementation "androidx.core:core-google-shortcuts:1.0.1" ... }
בקוד לדוגמה הקודם, ציינתם שתי ספריות Jetpack של יחסי התלות. הספרייה
androidx.core:core:1.6.0
מכילה את הכיתהShortcutManagerCompat
, שבאמצעותה אפשר לדחוף מקשי קיצור דינמיים ל-Google.androidx.core:core-google-shortcuts:1.0.1
היא אפליקציית Google ספריית שילוב של קיצורי דרך. הספרייה הזו לא מכילה תוכן למפתחים API. על ידי הוספת התלות הזאת, Assistant תוכל לקבל קיצורי דרך דינמיים שלוחצים עליהם באמצעות המחלקהShortcutManagerCompat
.
שליחת קיצורי דרך דינמיים
כדי לדחוף קיצורי דרך דינמיים שעומדים בדרישות להצגה ב-Assistant,
קודם כל צריך ליצור את קיצור הדרך באמצעות ShortcutInfoCompat.Builder()
בכיתה.
לאחר מכן דוחפים את קיצור הדרך באמצעות
אמצעי תשלום אחד (ShortcutManagerCompat.pushDynamicShortcut()
). קיצורי הדרך נדחפים
בכל פעם שמשתמש משלים פעולה רלוונטית באפליקציה שלכם. הדוגמה הבאה
דוחף קיצור דרך בכל פעם שמשתמש יוצר רשימה באפליקציית פתקים ורשימות.
ExampleOrderActivity
Kotlin
// Define the dynamic shortcut for an item var intent = Intent(context, DisplayOrderActivity::class.java) intent.action = Intent.ACTION_VIEW var shortcutInfo = ShortcutInfoCompat.Builder(context, id) .setShortLabel("Running") .setLongLabel("Start running") .addCapabilityBinding( "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List") ) .setIntent(intent) // Push the shortcut .build() // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)
Java
// Define the dynamic shortcut for an item Intent intent = new Intent(context, DisplayOrderActivity.class); intent.setAction(Intent.ACTION_VIEW); ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id) .setShortLabel("Running") .setLongLabel("Start running") .addCapabilityBinding( "actions.intent.CREATE_ITEM_LIST", "itemList.name", Arrays.asList("My First List")) .setIntent(intent) .build(); // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
השדה id
שהוזכר בשיטה ShortcutInfoCompat.Builder
בסעיף הקודם
קוד לדוגמה מגדיר את shortcutId
של אובייקט קיצור הדרך שנוצר. הid
הזה
חייב להיות ליטרל מחרוזת ייחודי. פרטים נוספים זמינים במאמר
מסמכי תיעוד בנושא קיצורי דרך ב-Android.
בדוגמה הקודמת, השיטה addCapabilityBinding
מקשרת את קיצור הדרך הדינמי ל-capability
של אותו android:name
שמוגדר ב-shortcuts.xml
. השיטה הזו מאפשרת לשייך את קיצור הדרך
פרמטר סמנטי של Intent מובנה (BII).
לפעמים קיצורי דרך דינמיים מועברים ללא שיוך של פרמטר BII ספציפי. כשמשתמש מפעיל את Assistant, היא מפעילה את ה-intent
שהוגדר
במקש הקיצור כדי לבצע את הפעולה. הדוגמה הבאה מראה איך
קיצור דרך ללא שיוך לפרמטר:
Kotlin
var intent: Intent = Intent(context, DisplayOrderActivity::class.java) intent.setPackage(this, "com.sample.app") intent.setAction(Intent.ACTION_VIEW) var shortcutInfo: ShortcutInfoCompat = ShortcutInfoCompat.Builder(context, id) .setShortLabel("Create a list") .setLongLabel("Create a list") .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST") .setIntent(intent) .build() ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
Java
Intent intent = new Intent(context, DisplayOrderActivity.class); intent.setPackage(this, "com.sample.app"); intent.setAction(Intent.ACTION_VIEW); ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, id) .setShortLabel("Create a list") .setLongLabel("Create a list") .addCapabilityBinding("actions.intent.CREATE_ITEM_LIST") .setIntent(intent) .build(); ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
בדיקה של מקשי הקיצור הדינמיים באמצעות Assistant
אם Google Assistant מצליחה להשתמש בקיצור דרך דינמי מ- האפליקציה, קיצור הדרך כשיר להופיע כהצעה לקיצור דרך אפליקציית Assistant ל-Android. אפליקציית Assistant מציעה את מקשי הקיצור הכי עדכניים שהועברו על ידי האפליקציה.
כדי לבדוק את קיצורי הדרך הדינמיים עם Assistant, פועלים לפי השלבים הבאים:
- יוצרים תצוגה מקדימה של פעולות האפליקציה ומכינים את מכשיר הבדיקה או את המהדמיה לבדיקה של הפעולות, לפי אותן דרישות הגדרה כמו לPlugin של Google Assistant.
- פותחים את האפליקציה ומגדירים קיצור דרך דינמי להעברה. ואז משלימים את הפעולה. לדוגמה, אם תלחצו על מקש קיצור בכל פעם תיצרו פתק באפליקציה לכתיבת פתקים, ואז תיצרו הערה חדשה.
- פותחים את קיצורי הדרך באפליקציה הגדרות Assistant במכשיר. שלך קיצור הדרך הדינמי יופיע ברשימה של האפליקציה.