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

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

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

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

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

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

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 בקטע "סדר תצוגה של קיצורי דרך". לדוגמה, הצג תחילה את קיצורי המניפסט ולאחר מכן את קיצורי הדרך הדינמיים. קיצורי הדרך ממוינים לפי דרגה בסדר עולה בתוך כל קבוצה.
  • המשתמש אמור להיות מסוגל לגרור כל קיצור דרך דינמי/מניפסט ו"להצמיד" אותו למסך הבית.
  • יש לגבות ולשחזר קיצורי דרך מוצמדים. (ראה Javadoc של ShortcutManager לפרטים)
  • ביצוע "תשובה מוטבעת" על Notification צריך לקרוא באופן פנימי ל-ShortcutManager.onApplicationActive.

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

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

מַתַן תוֹקֵף

השתמש במבחני Android Compatibility Test Suite (CTS) הבאים כדי להבטיח שהגרסה שלך של התכונה (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