アプリ デベロッパーは、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 の変更内容を確認してください。
- Change-Id: 8b2002e28072c52d78f6d052c6ff6da50a2d0324
- Change-Id: 278359539c02ca160caf1df54ce96053a2a2ef59
検証
機能を検証するには、Chrome または連絡帳アプリからショートカットを追加して、適切な確認プロンプトが表示されることを確認します。同意すると、ホーム画面にアイコンが追加され、Chrome に成功トーストが表示されます。