קיצורי דרך לאפליקציות

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

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

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

דוגמאות ומקור

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

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

לדוגמה, בחלק 'מרכז האפליקציות של Android בקוד פתוח' בגרסה 3 יש תמיכה קיצורי דרך:

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 כבר תומך בקיצורי דרך. במקרים שבהם לשותף יש מרכז אפליקציות עצמו, גם מרכז האפליקציות הזה צריך לתמוך בקיצורי דרך.

  • כשהמשתמש מבצע תנועה מסוימת (למשל, לחיצה ארוכה) על סמל של אפליקציה, במרכז האפליקציות להציג את קיצורי הדרך הדינמיים ואת קיצורי הדרך למניפסט שמשויכים לכל סמל הפעילות במרכז האפליקציות.
    סדר המיון של קיצורי הדרך מוגדר ב-ShorctutManager Javadoc בתוך את 'סדר התצוגה של קיצורי הדרך' . לדוגמה, הצגת קיצורי הדרך למניפסט קודם כל ואז את קיצורי הדרך הדינמיים. קיצורי הדרך ממוינים לפי דירוג סדר עולה בתוך כל קבוצה.
  • למשתמש צריכה להיות אפשרות לגרור כל קיצור דרך דינמי/מניפסט ו"הצמדה" זה למסך הבית.
  • צריך לגבות ולשחזר את קיצורי הדרך שהוצמדו. (עיינו במאמרי ShortcutManager) Javadoc לפרטים)
  • ביצוע פעולה של 'תשובה בשרשור' בהתראה צריכה להתקשר באופן פנימי ShortcutManager.onApplicationActive.

בנוסף, לחלק מהאפליקציות של Google Mobile Services (GMS) יש קיצורי דרך. ה-OEM (יצרן הציוד המקורי) במרכז האפליקציות צריך להציג קיצורי דרך, ורצוי שהוא יתמוך בהצמדה. (או יוצר סמל קיצור דרך).

לפרטים על האינטראקציה עם ה-framework, תוכלו לעיין במקור של מרכז האפליקציות 3 את הפעולות שצוינו למעלה.

אימות

השתמש בבדיקות הבאות של Android TCF Suite כדי לוודא של התכונה (ShortcutManager ו-LauncherApps) פועלת כמצופה:

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