Android shortcuts快捷方式实现(支付宝长按图标弹出快捷方式入口)

简介: Android shortcuts快捷方式实现(支付宝长按图标弹出快捷方式入口)

 前言

Android shortcuts算是比较老的技术了,现在许多诸如支付宝、百度地图等都实现了这一功能,这一功能是Android7.1推出的新功能,但是在国内app使用的还是比较少。我们先来看一下支付宝实现的效果图。

image.png

这样我们在使用的时候会方便许多,个人认为这种快捷方式更适合静态使用,比如设置等一些和数据没有交互的地方,虽然动态注册可以做,但是感觉不太友好。

1.新建项目

因为这个功能是Android7 推出来的,所以在新建项目的时候minsdk要设置为21,真机测试也肯定是要在Android7 以上的

2.编码

在res目录下新建xml目录,新建shortcuts.xml

image.png

建一个shortcut节点

<shortcut
    android:shortcutId="settings"
    android:enabled="true"
    android:icon="@mipmap/ic_launcher"
    android:shortcutShortLabel="@string/ceshirukou"
    android:shortcutLongLabel="@string/kuaijieceshi"
    android:shortcutDisabledMessage="@string/bukeyong">
    <intent
        android:action="android.intent.action.VIEW"
        android:targetPackage="hlq.jobscheduler"
        android:targetClass="hlq.view.activity.TestACtivity" />
    <categories android:name="android.shortcut.conversation"/>
</shortcut>

image.gif

shortcutId, 一个唯一的id

enabled, 表示这个shortcut是否可用

shortcutShortLabel, 这里是配置的短名称, 下面还会有长名称, 如果长名称显示不下, 就显示短名称

shortcutLongLabel, 这里是配置的长名称, launcher会优先选择长名称显示

shortcutDisabledMessage, 这个配置是在我们选择一个不可用的shortcut时给用户的一个提示

在intent标签中

targetPackage是指定一个目标应用的包名,

targetClass是我们要跳转的目标类

action属性表示执行的动作可以统一使用这个,categories用上述默认即可

如果我们点击图标想有多个快捷方式,在下面添加shortcut标签就可以了,最多可以配置5个

3.注册shortcut

像广播服务那样,需要在配置文件中声明编写的shortcuts,并且必须在默认启动的Activity中注册,如下:

 

<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>

image.gif

注册好后,运行起来,我们长按app效果图如下所示:


image.png

4.动态注册

在Android广播中我们都知道广播可以动态注册和静态注册,那么快捷方式也是同样的,上述方式为静态注册,快捷方式入口适合打开固定不变的页面,如果我们打开的界面要和数据交互,我们可以使用动态注册方式,接下来,我们了解动态注册

4.1

首先我们得到ShortManger对象

ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

image.gif

然后调用setDynamicShortcuts(List<ShortcutInfo>)方法设置shortcuts

比如我们从数组中得到数据,为每个数据设置快捷方式,可建的快捷方式最大个数我们可以通过

shortcutManager.getMaxShortcutCountPerActivity()得到,使用ShortcutInfo.Builder设置属性

image.gif

for(int i = 0;i < shortcutManager.getMaxShortcutCountPerActivity(); i++){
    Intent intent = new Intent(this, TestActivity3.class);
    intent.setAction(Intent.ACTION_VIEW);
    intent.putExtra("msg", "我和" + name[i] + "聊天");
    ShortcutInfo info = new ShortcutInfo.Builder(this, "id" + i)
            .setShortLabel(name[i])
            .setLongLabel("朋友:" + name[i])
            .setIcon(Icon.createWithResource(this, R.mipmap.ic_launcher_round))
            .setIntent(intent)
            .build();
    infos.add(info);
}
shortcutManager.setDynamicShortcuts(infos);

image.gif

效果图如下图所示:

image.png

我们可以将这些快捷方式单独拉出来,独立成一个小app,和qq聊天为好友设置快捷方式类似

image.png

好啦,上述就是Android开发 快捷方式的使用了

目录
相关文章
|
6月前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
71 0
|
6月前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
796 0
|
6月前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
152 0
|
3月前
|
Android开发
解决android apk安装后出现2个相同的应用图标
解决android apk安装后出现2个相同的应用图标
305 2
|
3月前
|
XML Android开发 数据格式
Android实战经验之Kotlin中快速实现动态更改应用图标和名称
本文介绍在Android中通过设置多个活动别名动态更改应用图标和名称的方法,涉及XML配置及Kotlin代码示例。
153 10
|
5月前
|
存储 Android开发
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
70 0
|
6月前
|
Java Android开发
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
107 1
|
6月前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
108 0
|
6月前
|
机器人 Android开发 数据安全/隐私保护
Android App 导出APK安装包以及制作App图标讲解及实战(图文解释 简单易懂)
Android App 导出APK安装包以及制作App图标讲解及实战(图文解释 简单易懂)
894 0
|
11月前
|
编解码 Android开发
用PS为网迅安卓公司设计基于安卓平台的手机应用图标
用PS为网迅安卓公司设计基于安卓平台的手机应用图标