我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android 应用Icon快捷(shortcut)功能的详解(一)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android 应用Icon快捷(shortcut)功能的详解(一)

一、介绍

        在现如今的应用中,一些开发者为了把核心的业务尽快的方便让使用者触摸到,想尽各种办法。比如前期的桌面插件,点击直接拉起核心业务。现在我们在主流的APP中,只要你长按桌面快捷键,发现弹出来的是不是单一的卸载,还包括好多应用快捷键,比如微信和支付宝:付款码、收款码、扫一扫等。

小米商城
​​​​

这种炫酷的技术是怎么实现?它就是我们shortcut的功能。

二、shortcut的介绍

快捷方式可帮助用户快速访问您的应用的某些部分,从而为他们呈现特定类型的内容

        如何以快捷方式来呈现内容取决于您的用例,以及快捷方式的上下文是属于应用驱动型还是用户驱动型。虽然静态快捷方式的上下文不会更改,而动态快捷方式的上下文会不断变化,但这两种情况下的上下文都由您的应用驱动。如果用户选择了希望应用以哪种方式(例如使用固定快捷方式)向其呈现内容,则此时的上下文是由用户定义的。以下场景展示了各类快捷方式的一些用例:

        静态快捷方式最适合在用户与应用互动的整个生命周期内使用一致结构链接到内容的应用。由于大多数启动器一次只能显示四个快捷方式,因此静态快捷方式对常见 Activity 非常有用。例如,如果用户希望以特定的方式查看他们的日历或电子邮件,使用静态快捷方式可确保他们在执行日常任务时始终获得一致体验。

        动态快捷方式用于应用中与上下文相关的操作。上下文相关快捷方式是专为用户在应用内执行的操作而定制的。例如,如果您构建的游戏允许用户在启动时从当前关卡开始,您需要经常更新该快捷方式。动态快捷方式允许游戏在每次用户通关后更新快捷方式。

        固定快捷方式用于用户驱动的特定操作。例如,用户可能需要将特定网站固定到启动器。这很有用,因为它允许用户执行自定义操作,比如一步导航到网站,这比使用浏览器的默认实例速度更快。

1、创建静态快捷方式

        静态快捷方式提供指向应用内常规操作的链接,这些操作在应用当前版本的生命周期内应保持一致。适合使用静态快捷方式的操作包括查看已发邮件、设置闹钟以及显示用户当天的锻炼活动

静态快捷方式创建步骤:

在AndroidManifest中,找到 intent 过滤器设置为 android.intent.action.MAIN 操作和 android.intent.category.LAUNCHER 类别的 Activity。

向此 Activity 添加 元素,该元素引用了定义应用快捷方式的资源文件

  

创建新的资源文件:res/xml/shortcuts.xml

4、在这个新的资源文件中,添加  根元素,其中包含  元素的列表。每个  元素都包含有关一个静态快捷方式的信息,包括其图标、说明标签及其在应用内启动的 intent

                                            

一个shortcut就是一个快捷入口。

关键字介绍:

须为 android:shortcutId 和 android:shortcutShortLabel 提供值。其他所有的值均为可选。

1、android:shortcutId

定义一个id,表示 ShortcutManager 对象对其执行操作时的快捷方式。

2、android:shortcutShortLabel

这是用于简短说明快捷方式用途的词组。请尽可能将快捷方式的“简短说明”的长度限制在 10 个字符以内

3、android:shortcutLongLabel

这是用于详细说明快捷方式用途的词组。如果空间足够大,启动器会显示此值,而不是 android:shortcutShortLabel。 请尽可能将快捷方式的“详细说明”的长度限制在 25 个字符以内。

4、android:shortcutDisabledMessage

这是当用户尝试启动已停用的快捷方式时出现在支持的启动器中的消息。此消息应向用户解释快捷方式现在停用的原因。 如果 android:enabled 为 true,则此属性的值无效。

5、android:enabled

这用于确定用户是否能够与支持的启动器中的快捷方式进行交互。 android:enabled 的默认值为 true。 如果您将其设置为 false,则还应设置 android:shortcutDisabledMessage,用于说明停用该快捷方式的原因。如果您认为自己不需要提供此类消息,最简单的做法就是从 XML 文件中完全移除该快捷方式。

android:icon

这是启动器向用户显示快捷方式时所用的位图或自适应图标。此值可以是某个图片的路径,也可以是包含相应图片的资源文件。请尽可能使用自适应图标来提高性能和一致性。

配置内部元素

7.action节点

这个action是启动目标页的配置信息。和我们正常启动一个页面一样

1、android:action:启动方式

2、android:targetPackage:目标包名

3、android:targetClass:目标类

8、categories

这用于为应用的快捷方式所执行的各类操作(如创建新的聊天消息)提供分组。

如需查看支持的快捷方式类别的列表,请参阅 ShortcutInfo 类参考文档。

9、capability-binding

声明与此快捷方式关联的功能

2、创建动态快捷方式

动态快捷方式提供指向应用内特定的上下文相关操作的链接。这些操作可能会在应用的不同使用场景间发生变化,甚至会在应用运行时发生变化。适合使用动态快捷方式的用例包括致电特定人员、导航到特定位置,以及从用户的上一个存档点加载游戏

ShortcutManagerCompat Jetpack 库是 ShortcutManager API 的帮助程序,可让您管理应用中的动态快捷方式。使用 ShortcutManagerCompat 库可减少样板代码

ShorcutManagerCompat API 让您的应用可以通过动态快捷方式执行以下操作:

  • 推送和更新:使用 pushDynamicShortcut() 发布和更新动态快捷方式。如果已经存在具有相同 ID 的动态快捷方式或固定快捷方式,那么每个可变快捷方式都会更新。
     
  • 移除:使用 removeDynamicShortcuts() 移除一组动态快捷方式,或使用 removeAllDynamicShortcuts() 移除所有动态快捷方式。
        val shortcut = ShortcutInfoCompat.Builder(context, "myshortcutid")            .setShortLabel("Website")            .setLongLabel("Open the website")            .setIcon(IconCompat.createWithResource(context, R.drawable.icon_website))            .setIntent(                Intent(                    Intent.ACTION_VIEW,                    Uri.parse("https://www.abc.com/")                )            )            .build()        ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)

库的引用:

 dependencies {           implementation "androidx.core:core:1.6.0"           implementation 'androidx.core:core-google-shortcuts:1.0.0'                   }

3.创建固定快捷方式

        在 Android 8.0(API 级别 26)及更高版本中,您可以创建固定快捷方式。与静态和动态快捷方式不同,固定快捷方式在受支持的启动器中显示为单独的图标

 要将快捷方式固定到使用您的应用的受支持启动器上,请按顺序完成以下一系列步骤:

使用 isRequestPinShortcutSupported() 验证设备的默认启动器是否支持应用内固定快捷方式。

使用以下两种方式之一创建 ShortcutInfo 对象,具体采用哪种方式取决于是否已存在相应快捷方式:

        2.1:如果已存在相应快捷方式,请创建仅包含现有快捷方式 ID 的 ShortcutInfo 对象。系统会自动找到与该快捷方式相关的所有其他信息,并将其固定。

        2.2:如果您要固定原本不存在的新快捷方式,请创建包含新快捷方式 ID、intent 和简短标签的 ShortcutInfo 对象。

尝试通过调用 requestPinShortcut() 将快捷方式固定到设备的启动器上。在此过程中,您可以传入一个 PendingIntent 对象,用于仅在快捷方式成功固定后通知您的应用。

快捷方式固定后,您的应用可以使用 updateShortcuts() 方法更新其内容。

    @RequiresApi(Build.VERSION_CODES.O)    fun update(context: Context)    {        val shortcutManager = context.getSystemService(ShortcutManager::class.java)        if (shortcutManager!!.isRequestPinShortcutSupported) {            val pinShortcutInfo = ShortcutInfo.Builder(context, "shortcutid").build()            val pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(pinShortcutInfo)            val successCallback = PendingIntent.getBroadcast(context,  0,                pinnedShortcutCallbackIntent,  0)            shortcutManager.requestPinShortcut(pinShortcutInfo,                successCallback.intentSender)        }    }

添加能力:capability

capability这个属于我们自定义,或者可以借助系统自带的。capability 取决于要实现的功能以及用户请求中包含的实际字词

通过以上的配置,我们已基本完成快接入口的。

来源地址:https://blog.csdn.net/qq36246172/article/details/130941240

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android 应用Icon快捷(shortcut)功能的详解(一)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PyCharm编辑器的功能和快捷键详解

PyCharm是一款由JetBrains公司开发的针对Python开发的集成开发环境(IDE)。PyCharm集成了许多功能,使得Python开发变得更加高效和便捷。下面将介绍PyCharm常用的功能及相应的快捷键。代码提示和自动补全PyC
PyCharm编辑器的功能和快捷键详解
2024-02-26

解析android创建快捷方式会启动两个应用的问题

接下来讲一种完美的方案。因为第一个界面是欢迎界面,所以快捷方式启动的界面也是欢迎界面,刚开始就怀疑快捷方式创建的代码有问题,但不知道问题出在哪儿。猜测可能会是快捷方式的错误导致系统创建两个应用,就也是同一个应用会有两个PID,结果在控制台查
2022-06-06

详解Android应用开发中Scroller类的屏幕滑动功能运用

今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中scrollTo 与scrollBy这两个函数的区别 。 首先 ,我们必须明白在Android View视图是没有边界的,Canv
2022-06-06

详解Android系统中跨应用数据分享功能的实现

一个Andoird应用程序的重要的地方是他们有相互沟通和整合的能力,一个应用程序可以和另一个应用程序交互,接下来我们来看看Android应用之间的内容分享 当你构建Intent的时候,必须要指定Intent的Action触发,定义Inten
2022-06-06

怎么在Android应用中实现一个图案解锁功能

这期内容当中小编将会给大家带来有关怎么在Android应用中实现一个图案解锁功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.最关健的就是那个自定义九宫格View,代码来自framework下:Loc
2023-05-31

Android的webview支持HTML5的离线应用功能详细配置

HTML5的离线应用功能可以使得WebApp即使在网络断开的情况下仍能正常使用,这是个非常有用的功能。近来工作中也要用到HTML5离线应用功能,由于是在Android平台上做,所以自然而然的选择Webview来解析网页。但如何使Webive
2022-06-06

解析Android应用启动后自动创建桌面快捷方式的实现方法

要不怎么说Android特别开放呢,在Android开发中,只要发送一个广播,就可以实现这种需求了。 废话不多说,以下是封装好的一段代码。 代码如下:public class ShortcutUtil { public stati
2022-06-06

Android应用中怎么实现一个双击返回键退出应用的功能

Android应用中怎么实现一个双击返回键退出应用的功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.在MyAppliction中(继承Application) //
2023-05-31

Android应用中图片浏览时实现自动切换功能的方法详解

先给最终效果图:当我们在最下边的gallery中切换图片时,上面的大图片会自动切换,切换时有动画效果哦,很简单的一个程序,有待完善更多的功能! activity代码:package cn.com.chenzheng_java; impor
2022-06-06

Android应用中怎么实现一个带清除功能的输入框

本篇文章给大家分享的是有关Android应用中怎么实现一个带清除功能的输入框,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一,自定义一个类,名为ClearEditTextpac
2023-05-31

在Android应用怎实现一个获取联系人电话的功能

本篇文章给大家分享的是有关在Android应用怎实现一个获取联系人电话的功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、选择联系人............//构造一个隐式
2023-05-31

Android中用Bmob实现短信验证码功能的方法详解

这篇文章主要介绍发送验证码和校验验证码的功能,用到一个第三方平台Bmob,那Bmob是什么呢?Bmob可以开发一个云存储的移动应用软件,他提供了大量的标准的API接口,根据需要接入相关服务,开发者可以更加专注于应用的开发,让产品交付更快速
2022-06-06

Android开发教程之调用摄像头功能的方法详解

本文实例讲述了Android调用摄像头功能的方法。分享给大家供大家参考,具体如下: 我们要调用摄像头的拍照功能,显然 第一步必须加入调用摄像头硬件的权限,拍完照后我们要将图片保存在SD卡中,必须加入SD卡读写权限,所以第一步,我们应该在An
2022-06-06

怎么在Android应用中实现一个动态匹配输入的内容功能

怎么在Android应用中实现一个动态匹配输入的内容功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、AutoCompleteTextView独特属性:android:
2023-05-31

C++ 函数库详解:系统功能外延的实际应用案例

c++++ 函数库通过预定义函数集合扩展了程序功能,提供了系统功能支持,包括容器、算法、流和诊断。开发人员可创建自定义函数,例如自定义排序函数,以实现特定需求,如按成绩降序排序。该函数库还支持并发编程、网络通信和文件操作,提升编码效率和软件
C++ 函数库详解:系统功能外延的实际应用案例
2024-04-30

Android使用Realm数据库实现App中的收藏功能(代码详解)

前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式:使用SharedPreferences存储数据;文件存储数据;SQLite数据库存储数据;使用ContentProvider
2022-06-06

微信支付仅能成功调用一次问题的解决方法(Android)

本人使用Android开发有一段时间了,但是本身没有系统学,而且多年专注服务端开发,总觉得因为项目需要接触Android移动端开发只是暂时的,所以没有太上心,结果碰到一个大难题折腾了一天,最后被有经验的小伙伴提示了一下才迎刃而解,感觉无地自
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录