במהדורה 7.1.1 של Android, המפתחים יכולים להגדיר באפליקציות שלהם קיצורי דרך ספציפיים לפעולות, שאפשר להציג במרכז האפליקציות. מקשי הקיצור האלה מאפשרים למשתמשים להתחיל במהירות משימות נפוצות או מומלצות באפליקציה.
כל קיצור דרך מפנה לכוונה שמפעילה פעולה ספציפית באפליקציה כשהמשתמשים בוחרים את קיצור הדרך. דוגמאות לפעולות שאפשר להביע כקיצורי דרך לאפליקציות:
- ניווט משתמשים למיקום מסוים באפליקציית מפות
- שליחת הודעות לחברים באפליקציית תקשורת
- הפעלת הפרק הבא של תוכנית טלוויזיה באפליקציית מדיה
- טעינת נקודת השמירה האחרונה באפליקציית משחק
דוגמאות ומקור
ההטמעה הראשית של התכונה הזו נמצאת בקבצים הבאים:
frameworks/base/services/core/java/com/android/server/policy/ShortcutManager.java frameworks/base/services/core/java/com/android/server/pm/ShortcutPackage.java frameworks/base/services/core/java/com/android/server/pm/ShortcutUser.java frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageInfo.java frameworks/base/services/core/java/com/android/server/pm/ShortcutLauncher.java frameworks/base/services/core/java/com/android/server/pm/ShortcutParser.java frameworks/base/services/core/java/com/android/server/pm/ShortcutService.java frameworks/base/services/core/java/com/android/server/pm/LauncherAppsService.java frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageItem.java frameworks/base/core/java/com/android/server/backup/ShortcutBackupHelper.java frameworks/base/core/java/android/content/pm/ShortcutManager.java frameworks/base/core/java/android/content/pm/ShortcutServiceInternal.java frameworks/base/core/java/android/content/pm/ShortcutInfo.java frameworks/base/core/java/android/content/pm/LauncherApps.java
הקבצים הבאים מספקים תכונות תומכות (שנקראות ממשקי API מוסתרים ב-ShortcutManager.java
):
packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java
לדוגמה, גרסת 3 של Android Open Source Project Launcher תומכת מקשי קיצור:
packages/apps/Launcher3/
לבסוף, אפשר לעיין בקבצים הבאים כדי למצוא Javadoc ציבורי.
frameworks/base/core/java/android/content/pm/ShortcutManager.java frameworks/base/core/java/android/content/pm/ShortcutInfo.java frameworks/base/core/java/android/content/pm/LauncherApps.java
הטמעה
כבר יש תמיכה בקיצורי דרך ב-AOSP Launcher3. במקרים שבהם לשותף יש מרכז אפליקציות משלו, גם מרכז האפליקציות הזה צריך לתמוך בקיצורי דרך.
- כשהמשתמש מבצע תנועה מסוימת (למשל לחיצה ארוכה) על סמל אפליקציה, במרכז האפליקציות אמורים להופיע קיצורי הדרך הדינמיים והקיצורי הדרך מהמניפסט שמשויכים לכל סמל פעילות במרכז האפליקציות.
סדר המיון של קיצורי הדרך מוגדר ב-Javadoc של ShorctutManager בקטע 'סדר התצוגה של קיצורי הדרך'. לדוגמה, הצגת מקשי הקיצור של המניפסט קודם, ואז את מקשי הקיצור הדינמיים. מקשי הקיצור ממוינים לפי דירוג בסדר עולה בכל קבוצה. - המשתמש אמור להיות מסוגל לגרור כל קיצור דרך דינמי/מניפסט ול'הצמיד' אותו למסך הבית.
- צריך לגבות ולשחזר את קיצורי הדרך המוצמדים. (פרטים נוספים זמינים ב-javadoc של ShortcutManager)
- ביצוע 'תשובה בתוך ההודעה' בהתראה צריך להפעיל באופן פנימי את ShortcutManager.onApplicationActive.
בנוסף, לאפליקציות מסוימות של Google Mobile Services (GMS) יש קיצורי דרך. מרכז האפליקציות של יצרן המכשיר אמור להציג קיצורי דרך אליהן, ובאופן אידיאלי גם לתמוך בהצמדה (או ביצירת סמל קיצור דרך).
במקור של Launcher3 מוסבר איך לבצע אינטראקציה עם המסגרת של הפעולות שלמעלה.
אימות
כדי לוודא שהגרסה שלכם של התכונה (ShortcutManager ו-LauncherApps) פועלת כמו שצריך, תוכלו להשתמש בבדיקות הבאות של חבילת בדיקות התאימות ל-Android (CTS):
cts/tests/tests/shortcutmanager/ cts/hostsidetests/shortcuts/
כאן אפשר למצוא את בדיקות היחידות להטמעה ב-AOSP:
frameworks/base/services/tests/servicestests/
כולל:
src/com/android/server/pm/ShortcutManagerTest*.java
אפשר גם להשתמש בבדיקה של CTS Verifier למנהל קיצורי הדרך:
cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java