アプリのショートカットの概要

デベロッパーは、アプリ内の特定のアクションを実行するショートカットを定義できます。ショートカットは、サポートされているランチャーまたはアシスタント(Google アシスタントなど)に表示され、ユーザーはアプリ内のよく使うタスクやおすすめのタスクを簡単に開始できるようになります。

このガイドのセットでは、アプリのショートカットを作成および管理する方法について説明します。さらに、ショートカットの効果を高めるおすすめ方法も紹介します。

ショートカットの種類

Nexus 6P のアプリのショートカット
図 1. アプリのショートカットにより、重要なアクションを表示してユーザーがすぐにアプリを操作できるようにする

各ショートカットは 1 つ以上のインテントを参照します。各インテントは、ユーザーがショートカットを選択したときにアプリ内の特定のアクションを開始します。アプリのために作成するショートカットの種類は、アプリの主な使用方法によって異なります。ショートカットとして表現できるアクションの例を次に示します。

  • メールアプリで新しいメールを作成する。
  • マッピング アプリの特定の場所にユーザーを移動させる。
  • コミュニケーション アプリ内の友だちにメッセージを送信する。
  • メディアアプリでテレビ番組の次のエピソードを再生する。
  • ゲームアプリで前回のセーブポイントを読み込む。
  • 音声コマンドを使って、食料品配達アプリで飲み物を注文する。

注: メイン アクティビティ(Intent.ACTION_MAIN アクションと Intent.CATEGORY_LAUNCHER カテゴリを処理するアクティビティ)のみにショートカットを設定できます。アプリに複数のメイン アクティビティがある場合は、アクティビティごとにショートカットのセットを定義する必要があります。

公開できるアプリのショートカットの種類は次のとおりです。

  • 静的ショートカットは、APK または App Bundle にパッケージ化されたリソース ファイルで定義します。
  • 動的ショートカットは、実行時にのみアプリでプッシュ、更新、削除できます。
  • 固定ショートカットは、ユーザーが権限を付与していれば、実行時に、サポートされているランチャーに追加できます。

    注: ユーザー自身も、アプリの静的ショートカットと動的ショートカットをランチャーにコピーすることにより、固定ショートカットを作成できます。

ケーパビリティを使用してアシスタントにショートカットを表示する

shortcuts.xml にケーパビリティを追加することで、アプリを起動して特定タスクを直接実行するためにユーザーがとれるアクションを宣言できます。たとえば、アプリ内機能をアシスタントの App Actions に拡張する capability 要素を宣言することで、ユーザーは Google アシスタントを介してアプリを音声操作できるようになります。詳しくは、ケーパビリティを追加するをご覧ください。

ショートカットの制限

サポートされているランチャーのほとんどは、一度に表示できるショートカットの数が(静的ショートカットと動的ショートカットの両方を合わせて)最大 4 つです。動的ショートカットをプッシュして Google アシスタントなどの Google サーフェスに表示する場合は、Google Shortcuts Integration Library を使用することで、ショートカット数の制限を回避できます。

Google Shortcuts Integration Library を使用しない場合、アプリが一度にプッシュできるショートカット数は、(静的と動的を合わせて)最大 15 個に制限されます。この方法で公開されたショートカットは、Android ランチャー内にのみ表示され、アシスタントなどの Google サーフェスからは検出されません。

注: デバイスによってサポートされるショートカットの最大数が異なる場合があります。getMaxShortcutCountPerActivity() メソッドを使用することで、そのデバイスがサポートするショートカットの数を確認できます。

アプリに対してユーザーが作成できる固定ショートカットの数に制限はありません。アプリが固定ショートカットを削除できない場合でも、無効にすることは可能です。

注: 他のアプリはショートカット内のメタデータにアクセスできませんが、ランチャー自体はこのデータにアクセスできます。したがって、このようなメタデータでは、ユーザーの機密情報を隠蔽する必要があります。

アプリのショートカットを作成するにあたっては、以下のページをご覧ください。

ショートカットで実行できる操作について詳しくは、ShortcutManager API リファレンスをご覧ください。