【发布时间】:2017-01-11 13:51:14
【问题描述】:
在 Nova Launcher(以及许多其他自定义启动器)中有一个手势配置,您可以在其中为手势分配各种操作。在这些操作中,有一个快捷方式选项卡。如何在我自己的应用程序中添加启动器可以识别的快捷方式? (我想这是我必须添加到 Manifest 并为其设置 Intent 的东西)
编辑:这是一个image 来指出这些操作。
【问题讨论】:
标签: android
在 Nova Launcher(以及许多其他自定义启动器)中有一个手势配置,您可以在其中为手势分配各种操作。在这些操作中,有一个快捷方式选项卡。如何在我自己的应用程序中添加启动器可以识别的快捷方式? (我想这是我必须添加到 Manifest 并为其设置 Intent 的东西)
编辑:这是一个image 来指出这些操作。
【问题讨论】:
标签: android
这些文档的记录很差,不幸的是以前被称为“启动器快捷方式”,现在已经无名了。除了出现在 Nova 的手势菜单和类似菜单中之外,它们还显示在小部件抽屉中的小部件旁边。我认为是“小部件快捷方式”。
官方文档似乎仅限于 ApiDemos 中的一个演示: https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.java
这个想法是在你的清单中处理android.intent.action.CREATE_SHORTCUT 并将结果返回到带有标签、图标和目标意图的启动器。然后启动器可以将其变成桌面上的图标,或者仅将意图用于手势或其他任何内容。
在你的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>
然后,当用户选择您的快捷方式时,启动器会对该活动执行startActivityForResult,您可以立即通过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();
【讨论】:
你指的是App Shortcuts吗? Android 开发者指南对它们有相当详尽的教程。
【讨论】: