Android 应用快捷方式 Shortcuts
简介: 快捷方式可帮助用户快速访问您的应用的某些部分,从而为他们呈现特定类型的内容。一次最多可以为应用发布五个快捷方式(静态和动态快捷方式加在一起),但大多数启动器只能显示四个。不过,用户可创建的应用固定快捷方式数量没有限制。应用无法移除固定快捷方式,但仍然可以停用它们。
效果图:
1. 快捷方式的类型:
- 静态快捷方式:最适合在用户与应用互动的整个生命周期内使用一致结构链接到内容的应用。 由于大多数启动器一次只能显示四个快捷方式,因此静态快捷方式对常见 Activity 非常有用。例如,如果用户希望以特定的方式查看他们的日历或电子邮件,使用静态快捷方式可确保他们在执行日常任务时始终获得一致体验。
- 动态快捷方式:用于应用中与上下文相关的操作。 例如,如果您构建的游戏允许用户在启动时就处于当前等级,则需要经常更新快捷方式。动态快捷方式允许游戏在每次用户通关后更新快捷方式。
- 固定快捷方式:用于用户驱动的特定操作。 例如,用户可能需要将特定网站固定到启动器。这很有用,因为它允许用户执行自定义操作,比如一步导航到网站,这比使用浏览器的默认实例速度更快。
1.2 创建静态快捷方式
静态快捷方式提供指向应用内常规操作的链接,这些操作在应用当前版本的生命周期内应保持一致。适合使用静态快捷方式的操作包括查看已发邮件、设置闹钟以及显示用户当天的锻炼活动。
如需创建静态快捷方式,请按顺序完成以下步骤:
- 在应用的清单文件 (AndroidManifest.xml) 中,找到 intent 过滤器设置为 android.intent.action.MAIN 操作和 android.intent.category.LAUNCHER 类别的 Activity。
- 向此 Activity 添加
<mate-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>
- 创建新的资源文件:res/xml/shortcuts.xml。
在这个新的资源文件中,添加<shortcuts>
根元素,其中包含<shortcut>
元素的列表。每个<shortcut>
元素都包含有关一个静态快捷方式的信息,包括其图标、说明标签及其在应用内启动的 intent:
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:shortcutId="compose"
android:enabled="true"
android:icon="@mipmap/ic_launcher"
android:shortcutShortLabel="@string/short_label1"
android:shortcutLongLabel="@string/long_label1"
android:shortcutDisabledMessage="@string/disabled_message1">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.ecsu.shortcutsdemo"
android:targetClass="com.ecsu.shortcutsdemo.MainActivity" />
<categories android:name="android.shortcut.conversation" />
</shortcut>
</shortcuts>
自定义属性值:
必须为 android:shortcutId
和 android:shortcutShortLabel
提供值。其他所有的值均为可选。
android:shortcutId
:快捷方式的id,需要保证是唯一的。不能将此属性的值设置为资源字符串(例如 @string/foo)。
android:shortcutShortLabel
:快捷方式的短名称,长名称显示不下的情况下才会显示短名称,如果可能,将长度限制为10个字符。此属性的值必须是资源字符串,例如 @string/shortcut_short_label。
android:shortcutLongLabel
:快捷方式的长名称,如果有足够的空间,Launcher会优先显示长名称,如果可能,将长度限制为25个字符。此属性的值必须为资源字符串,例如 @string/shortcut_short_label。
android:icon
:快捷方式的图标。
android:shortcutDisabledMessage
:当用户尝试启动已禁用的快捷方式时提示的信息,用于向用户解释为什么禁用该快捷方式。如果android:enabled="true"
,即快捷方式是启用的,那么此属性的值无效。此属性的值必须是资源字符串,例如@string/shortcut_disabled_message。
android:enabled
:是否启用快捷方式,该值为true时,用户点击快捷方式可以启动指定的Intent操作;该值为false时,还需要指定android:shortcutDisabledMessage
,当用户点击快捷方式时会提示该信息。禁用的快捷方式不会显示出来,因此如果要禁用快捷方式,一般还是直接从xml文件中移除比较好。
配置内部元素:
列出应用静态快捷方式的 XML 文件支持每个 <shortcut>
元素内的以下元素。必须为定义的每个静态快捷方式添加一个 intent 内部元素。
android:action
:指定Intent要启动的操作或任务,该属性必须要指定,否则不会显示快捷方式。android:targetClass
:要跳转的目标类。android:targetPackage
:要跳转的目标应用包名。
说明:
静态快捷方式的配置虽然很简单,但也是有数量限制的,最多只能显示4个,如果配置了超过4个,多余的则不会显示,应用并不会报错。