應用程序快捷方式

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

使用以下提供支持功能的文件(在ShortcutManager.java中稱為隱藏 API):

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 移動服務 (GMS) 應用程序具有快捷方式。 OEM 啟動器應該為它們顯示快捷方式,並且理想情況下也支持“固定”(或創建快捷方式圖標)。

有關如何與上述操作的框架交互的詳細信息,請參閱 Launcher3 源代碼。

驗證

使用以下 Android 兼容性測試套件 (CTS) 測試來確保您的功能版本(ShortcutManager 和 LauncherApps)按預期工作:

cts/tests/tests/shortcutmanager/
cts/hostsidetests/shortcuts/

並在此處找到 AOSP 實現的單元測試:

frameworks/base/services/tests/servicestests/

包括:

src/com/android/server/pm/ShortcutManagerTest*.java

您還可以為快捷方式管理器使用 CTS 驗證程序測試:

cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java