מקשי הקיצור ב-Android מספקים למשתמשים שיטות לביצוע פעולה או גישה לתוכן באפליקציה. Assistant יכולה להציע באופן יזום את קיצורי הדרך הדינמיים ב-Android למשתמשים ב- מועדים רלוונטיים, וכך המשתמשים יוכלו לגלות בקלות את האתר שלך ולהציג אותו שוב פונקציונליות שמופעלת באמצעות פקודות קוליות.
לדוגמה, ניתן להעביר קיצור דרך לכל הערה שמשתמש יצר
את אפליקציית פתקים שלכם. הרווחת
קישורים דינמיים שעומדים בדרישות להצגה בפלטפורמות של Google, כמו Assistant,
על ידי הוספה של ספריית Jetpack לשילוב של Google קיצורי דרך לפרויקט שלכם.
הספרייה הזו מאפשרת ל-Assistant להשתמש בקיצורי דרך דינמיים שמעבירים בדחיפה באמצעות
ShortcutManagerCompat
, שהיא wrapper של Jetpack
API של ShortcutManager
.
כשמשתמשים בספריית השילוב של קיצורי הדרך של Google באפליקציה, התהליך דינמי
קיצורי דרך שמועברים בדחיפה ל-Google גלויים למשתמשים כהצעות לקיצורי דרך קוליים
באפליקציית Assistant. ניתן להעביר מספר בלתי מוגבל של קיצורי דרך דינמיים
Assistant באמצעות השיטה pushDynamicShortcut()
של
הספרייה ShortcutManagerCompat
.
הגדרת פרויקט הפיתוח
כדי להוסיף את הפונקציונליות של קיצורי דרך דינמיים לאפליקציה, צריך את ה הספרייה 'שילוב קיצורי דרך של Google', שהיא ספרייה של Jetpack ב-Android. בקטע הזה נסביר איך להגדיר את פרויקט פיתוח האפליקציה כך שיכלול אותם הספרייה הזו.
כדי להוסיף את ספריית 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 a menu item var intent = Intent(context, DisplayOrderActivity::class.java) intent.action = Intent.ACTION_VIEW var shortcutInfo = ShortcutInfoCompat.Builder(context, id) .setShortLabel("Cappuccino") .setLongLabel("Order another cappuccino") .addCapabilityBinding( "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino") ) .setIntent(intent) // Push the shortcut .build() // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo)
Java
// Define the dynamic shortcut for a menu item Intent intent = new Intent(context, DisplayOrderActivity.class); intent.setAction(Intent.ACTION_VIEW); ShortcutInfoCompat.Builder shortcutInfo = new ShortcutInfoCompat.Builder(context, id) .setShortLabel("Cappuccino") .setLongLabel("Order another cappuccino") .addCapabilityBinding( "actions.intent.ORDER_MENU_ITEM", "menuItem.name", Arrays.asList("cappuccino")) .setIntent(intent) .build(); // Push the shortcut ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
השדה id
שהוזכר בשיטה ShortcutInfoCompat.Builder
בסעיף הקודם
קוד לדוגמה מגדיר את shortcutId
של אובייקט קיצור הדרך שנוצר. הid
הזה
חייב להיות ליטרל מחרוזת ייחודי. פרטים נוספים זמינים במאמר
מסמכי תיעוד בנושא קיצורי דרך ב-Android.
בדוגמה הקודמת, ה-method 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("Order coffee") .setLongLabel("Order a cup of coffee") .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM") .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("Order coffee") .setLongLabel("Order a cup of coffee") .addCapabilityBinding("actions.intent.ORDER_MENU_ITEM") .setIntent(intent) .build(); ShortcutManagerCompat.pushDynamicShortcut(context, shortcutInfo);
בדיקה של מקשי הקיצור הדינמיים באמצעות Assistant
אם Google Assistant מצליחה להשתמש בקיצור דרך דינמי מ- האפליקציה, קיצור הדרך כשיר להופיע כהצעה לקיצור דרך אפליקציית Assistant ל-Android. אפליקציית Assistant מציעה את מקשי הקיצור הכי עדכניים שהועברו על ידי האפליקציה.
כדי לבדוק את מקשי הקיצור הדינמיים באמצעות Assistant:
- ליצור תצוגה מקדימה של הפעולות באפליקציה ולהכין את מכשיר הבדיקה, או אמולטור לפעולות בדיקה באמצעות ביצוע של אותה הגדרה דרישות הגדרה כמו עבור הפלאגין של Google Assistant.
- פותחים את האפליקציה ומגדירים קיצור דרך דינמי לדחיפה. ואז משלימים את הפעולה. לדוגמה, אם תלחצו על מקש קיצור בכל פעם תיצרו פתק באפליקציה לכתיבת פתקים, ואז תיצרו הערה חדשה.
- פותחים את קיצורי הדרך באפליקציה הגדרות Assistant במכשיר. שלך קיצור הדרך הדינמי יופיע ברשימה של האפליקציה.