参考 创建快捷方式
原生系统上,长按应用图标显示快捷方式,点击快捷方式就打开应用的某个页面。
给自己的应用也加一下。
1.清单文件添加
在应用的主页面添加如下,shortcuts 就是要配置的文件。
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
主页面就是配置了 android.intent.action.MAIN
和 android.intent.category.LAUNCHER
的 Activity 。
示例:
<activity
android:name=".MainActivity"
android:exported="true">
<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>
2.创建shortcuts.xml
创建 res/xml/shortcuts.xml 文件,配置如下,
<?xml version ="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:enabled="true"
android:icon="@drawable/shape_oval_sweep"
android:shortcutDisabledMessage="@string/shortcut_disabled_message1"
android:shortcutId="id11"
android:shortcutLongLabel="@string/shortcut_long_label1"
android:shortcutShortLabel="@string/shortcut_short_label1">
<intent
android:action="android.intent.action.VIEW"
android:data="shortcut1"
android:targetClass="com.test.luodemo.appwidget.ShortcutActivity"
android:targetPackage="com.test.luodemo" />
</shortcut>
<shortcut
android:enabled="true"
android:shortcutDisabledMessage="@string/shortcut_disabled_message2"
android:shortcutId="id22"
android:icon="@drawable/shape_oval_liner"
android:shortcutLongLabel="@string/shortcut_long_label2"
android:shortcutShortLabel="@string/shortcut_short_label2">
<intent
android:action="android.intent.action.VIEW"
android:data="shortcut2"
android:targetClass="com.test.luodemo.appwidget.ShortcutActivity"
android:targetPackage="com.test.luodemo" />
</shortcut>
</shortcuts>
创建了两个快捷方式。
- android:enabled :是否可用,默认值为 true。如果将其设置为 false,请设置 android:shortcutDisabledMessage,说明停用该快捷方式的原因。如果您认为自己不需要提供此类消息,请从 XML 文件中完全移除该快捷方式。
- android:shortcutDisabledMessage :用户尝试启动已停用的快捷方式时显示在支持的启动器中的消息。如果 android:enabled 为 true,则此属性的值无效。
- android:shortcutId :字符串。
- android:icon :快捷方式的图标。
- android:shortcutShortLabel :快捷方式的简短说明,长度限制为 10 个字符。
- android:shortcutLongLabel :快捷方式的详细说明。如果空间足够,会显示此值,而不是 android:shortcutShortLabel ,长度限制为 25 个字符。
intent 内部元素
- android:targetClass :跳转的页面;
- android:targetPackage :跳转的应用包名。
- android:data :携带参数,方便区分是哪个快捷方式,跳转的页面可以通过 getIntent().intent.getDataString() 得到数据。
搞定,运行效果