2017-01-11 10 views
0

Nova Launcher(および他の多くのカスタムメニュー)では、ジェスチャーにさまざまなアクションを割り当てることができるジェスチャー設定があります。これらのアクションの中には、ショートカットタブがあります。ランチャーによって認識される自分のアプリにショートカットを追加するにはどうすればよいですか? (私はマニフェストに追加してインテントを設定する必要があると考えています)Androidはカスタムランチャーで使用できるショートカットを定義します

EDIT:これらのアクションを指摘するためのimageがあります。

答えて

5

これらは非常によく文書化されておらず、残念なことに以前は「ランチャーショートカット」と呼ばれていましたが、現在は名前が付けられていません。 Novaのジェスチャーメニューなどに加えて、ウィジェットドロワーのウィジェットの隣にも表示されます。私は「ウィジェットショートカット」と考えています。

公式ドキュメントはApiDemosでデモに限定しているようだ: https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.java

アイデアは、あなたのマニフェストにあなたがandroid.intent.action.CREATE_SHORTCUTを処理し、ラベル、アイコンをランチャーに結果を返すと意図を標的としていることです。ランチャーはそれをデスクトップ上のアイコンにしたり、ジェスチャーなどの意図を使用したりすることができます。ユーザーはランチャーがその活動のstartActivityForResultを行い、あなたのショートカットを選ぶ次に、あなたのAndroidManifest.xml

<activity android:name=".CreateShortcut"> 
    <intent-filter> 
     <action android:name="android.intent.action.CREATE_SHORTCUT" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

は、あなたはどちらかfinishはすぐに結果に、またはあなたがに、ユーザーにUIを表示することができますすることができますショートカットを設定します。 いずれにしても、準備完了のときランチャーに情報を返す:

Intent result = new Intent(); 
result.putExtra(Intent.EXTRA_SHORTCUT_INTENT, targetIntent); 
result.putExtra(Intent.EXTRA_SHORTCUT_NAME, targetLabel); 
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(
      this, R.drawable.ic_launcher_shortcut); 
result.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); 

setResult(RESULT_OK, result); 
finish(); 
+0

ありがとうKevin。 Nova Launcher dev:D –

+0

@kevinからの回答は期待していませんでした。https://stackoverflow.com/questions/47769971/shortcuts-vs-launcher-widgets-android – Aram

0

App Shortcutsを参照していますか? Androidデベロッパーガイドには完全なチュートリアルがあります。

+0

いいえ。ここに(かなり古い)[画像](http://cdn.appstorm.net/android.appstorm.net/authors/aghoshal/Left-a-selection-of-shortcuts-to-choose-from-Right-digging -into-Nova-Launchers-Activities-to-find-a-shortcut.jpg)がGoogle画像に表示されます。 –

関連する問題