ウィジェットとショートカット

アプリ デベロッパーは、Android 8.0 でショートカットとウィジェットを追加する新しいフロー API を使用して、ウィジェット トレイに依存することなく、アプリ内からショートカットとウィジェットを追加できます。また、この新しい API の導入に伴い、セキュリティ上の理由から、ショートカットを追加する従来のメソッド(ブロードキャストの送信)は廃止されます。

ランチャーは、アプリ デベロッパーがシステムを利用してショートカットやウィジェットを追加できるように、この新しい実装をサポートする必要があります。

例とソース

さまざまなシステムクラスでドキュメントを参照できます。リファレンスには次のようなものがあります。

  • ShortcutManager.java
    ヘッダーで「固定」ショートカット セクションを公開します。
  • Intent.java
    ACTION_CREATE_SHORTCUT の Javadoc。
  • AppWidgetManager.java
    requestPinAppWidget の Javadoc。

実装

デバイス実装者は、次のインテント フィルタ アクションを使用して、ランチャーにアクティビティを追加する必要があります。

  • android.content.pm.action.CONFIRM_PIN_SHORTCUT
  • android.content.pm.action.CONFIRM_PIN_APPWIDGET

詳細については、API ドキュメントをご覧ください。

このアクティビティは、リクエストされたウィジェット / ショートカットを追加する確認プロンプトをユーザーに表示し、ユーザーが同意した場合、該当のウィジェット / ショートカットをホーム画面に追加します。

ウィジェットの場合、accept() 呼び出しは新しく追加するウィジェットのウィジェット ID を含んでいる必要があります。

システム UI の実装

パートナーは、ランチャー アプリを更新する際に、リファレンスとして Launcher3 実装(packages/apps/Launcher3)を使用する必要があります。

Android オープンソース プロジェクト(AOSP)で、関連する Launcher3 の変更内容を確認してください。

検証

機能を検証するには、Chrome または連絡帳アプリからショートカットを追加して、適切な確認プロンプトが表示されることを確認します。同意すると、ホーム画面にアイコンが追加され、Chrome に成功トーストが表示されます。