如果你的应用的目标是Android 7.1(API级别25)或更高,则可以在应用中定义特定操作的快捷方式。这些快捷方式可以显示在支持的启动器中。快捷方式可让您的用户在应用内快速启动常用或推荐的任务。每个快捷方式引用一个或多个Intent,当用户选择快捷方式时,每个Intent都将在您的应用程序中启动特定的操作。
添加应用快捷方式/快捷键:
目前支持两种类型快捷方式,一类是通过长按应用图标弹出的App shortcuts,一类是添加到桌面中显示的Pinned shortcuts(固定快捷键),App shortcuts支持动态添加,更新,删除,禁用,Pinned shortcuts仅支持动态添加,更新,但无法通过程序移除,只能禁用。
App shortcuts:
静态快捷方式在打包到APK中的资源文件中定义。因此,您必须等到更新整个应用程序才能更改这些静态快捷方式的详细信息。
动态快捷方式在运行时使用 ShortcutManagerAPI发布。在运行时期间,您的应用可以发布,更新和删除其动态快捷方式。
Pinned shortcuts:
固定快捷方式在运行时发布,也使用
ShortcutManagerAPI。在运行时期间,您的应用可以尝试固定快捷方式,此时用户会收到一个确认对话框,要求他们允许固定快捷方式。固定的快捷方式仅在用户接受固定请求时出现在受支持的启动器中。
注意:用户也可以通过将应用程序的静态和动态快捷方式复制到启动器本身来创建固定快捷方式。每个应用最多发布五个快捷方式(静态快捷方式和动态快捷方式组合)。但是,某些启动器应用程序不会显示您为应用程序创建的每个静态和动态快捷方式。固定快捷方式创建的的数量没有限制。应用程序无法删除已固定的快捷方式,但可以禁用这些固定快捷方式。
应用程序快捷方式示例如下:
一、创建App shortcuts
1.1 静态快捷方式(Using Static Shortcuts)
静态快捷方式应提供应用程序中通用操作的链接,这些操作应在应用程序当前版本的整个生命周期内保持一致。静态快捷方式的好候选者包括查看发送的消息,设置闹钟以及显示用户当天的锻炼活动。长按应用图标在弹出的App shortcuts中显示。
1.首先在应用的AndroidManifest.xml中找到应用入口activity(其意图过滤器设置为 android.intent.action.MAIN 动作和 android.intent.category.LAUNCHER 类别)
2.向这个activty标签中添加meta-data元素,该元素引用定义应用快捷方式的资源文件:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts"/>
</activity>
3.创建一个新的资源文件:res/xml/shortcuts.xml
在这个新的资源文件中,添加一个根元素,其中包含元素列表。每个元素又包含有关静态快捷方式的信息,包括其图标,其描述标签以及它在应用内启动的意图:
<?xml version="