2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
アプリのショートカット
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# App shortcuts\n\nThe Android 7.1.1 release allows developers to define action-specific\nshortcuts in their apps that can be displayed in a launcher. These [app\nshortcuts](https://developer.android.com/guide/topics/ui/shortcuts.html) let users quickly start common or recommended tasks within an\napp.\n\n\nEach shortcut references an intent that launches a specific action in the app\nwhen users select the shortcut. Examples of actions you can express as app\nshortcuts include:\n\n- Navigating users to a particular location in a mapping app\n- Sending messages to a friend in a communication app\n- Playing the next episode of a TV show in a media app\n- Loading the last save point in a gaming app\n\nExamples and source\n-------------------\n\n\nYou can find the primary implementation of this feature in the following files: \n\n```text\nframeworks/base/services/core/java/com/android/server/policy/ShortcutManager.java\nframeworks/base/services/core/java/com/android/server/pm/ShortcutPackage.java\nframeworks/base/services/core/java/com/android/server/pm/ShortcutUser.java\nframeworks/base/services/core/java/com/android/server/pm/ShortcutPackageInfo.java\nframeworks/base/services/core/java/com/android/server/pm/ShortcutLauncher.java\nframeworks/base/services/core/java/com/android/server/pm/ShortcutParser.java\nframeworks/base/services/core/java/com/android/server/pm/ShortcutService.java\nframeworks/base/services/core/java/com/android/server/pm/LauncherAppsService.java\nframeworks/base/services/core/java/com/android/server/pm/ShortcutPackageItem.java\nframeworks/base/core/java/com/android/server/backup/ShortcutBackupHelper.java\nframeworks/base/core/java/android/content/pm/ShortcutManager.java\nframeworks/base/core/java/android/content/pm/ShortcutServiceInternal.java\nframeworks/base/core/java/android/content/pm/ShortcutInfo.java\nframeworks/base/core/java/android/content/pm/LauncherApps.java\n```\n\n\nWith the following files providing supporting features (called hidden APIs in\n`ShortcutManager.java`): \n\n```carbon\npackages/apps/Settings/src/com/android/settings/DevelopmentSettings.java\nframeworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java\n```\n\n\nAnd, for an example, the Android Open Source Project Launcher version 3 supports\nshortcuts: \n\n```\npackages/apps/Launcher3/\n```\n\n\nFinally, see the following files for public Javadoc. \n\n```text\nframeworks/base/core/java/android/content/pm/ShortcutManager.java\nframeworks/base/core/java/android/content/pm/ShortcutInfo.java\nframeworks/base/core/java/android/content/pm/LauncherApps.java\n```\n\nImplementation\n--------------\n\n\nThe AOSP Launcher3 supports shortcuts already. In cases where a partner has its\nown launcher, that launcher should support shortcuts too.\n\n- When the user performs a certain gesture (e.g. long press) on an app icon, the launcher should show the dynamic and manifest shortcuts associated with each launcher activity icon. \n The shortcut sort order is defined in the ShorctutManager Javadoc within the \"Shortcut Display Order\" section. For example, show the manifest shortcuts first, then the dynamic shortcuts. The shortcuts are sorted by rank in ascending order within each group.\n- The user should be able to drag each dynamic/manifest shortcut and \"pin\" it to the home screen.\n- Pinned shortcuts should be backed up and restored. (See ShortcutManager's javadoc for details)\n- Doing an \"Inline reply\" on Notification should internally call ShortcutManager.onApplicationActive.\n\n\nIn addition, some Google Mobile Services (GMS) apps have shortcuts. The OEM\nlauncher should show shortcuts for them and ideally support \"[pinning](https://support.google.com/nexus/answer/6118421)\" (or creating\na shortcut icon) too.\n\n\nSee the Launcher3 source for details on how to interact with the framework for\nthe above operations.\n\nValidation\n----------\n\n\nUse the following Android Compatibility Test Suite (CTS) tests to ensure your\nversion of the feature (ShortcutManager and LauncherApps) works as intended: \n\n```\ncts/tests/tests/shortcutmanager/\ncts/hostsidetests/shortcuts/\n```\n\n\nAnd find the unit tests for the AOSP implementation here: \n\n```\nframeworks/base/services/tests/servicestests/\n```\n\n\nWhich includes: \n\n```scdoc\nsrc/com/android/server/pm/ShortcutManagerTest*.java\n```\n\n\nYou may also employ the CTS Verifier test for shortcut manager: \n\n```text\ncts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java\n```"]]