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

这篇具有很好参考价值的文章主要介绍了Android 应用Icon快捷(shortcut)功能的详解(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、介绍

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

android:icon,kotlin,Jetpack,android,android,kotlin
小米商城
​​​​

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

二、shortcut的介绍

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

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

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

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

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

1、创建静态快捷方式

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

静态快捷方式创建步骤:

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

2、向此 Activity 添加 <meta-data> 元素,该元素引用了定义应用快捷方式的资源文件

 <meta-data android:name="android.app.shortcuts"
                 android:resource="@xml/shortcuts" /> 

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

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

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
    <shortcut
        android:shortcutId="compose"
        android:enabled="true"
        android:icon="@drawable/lion_close"
        android:shortcutShortLabel="shortcutShortLabel"
        android:shortcutLongLabel="shortcutLongLabel"
        android:shortcutDisabledMessage="shortcutDisabledMessage">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetPackage="com.example.wiik.testdemo"
            android:targetClass="com.example.wiik.testdemo.screem.TestTwoWindowActivity" />
        <!-- If your shortcut is associated with multiple intents, include them
             here. The last intent in the list determines what the user sees when
             they launch this shortcut. -->
        <categories android:name="android.shortcut.conversation" />
        <capability-binding android:key="actions.intent.CREATE_MESSAGE" />
    </shortcut>
    <!-- Specify more shortcuts here. -->
</shortcuts>

一个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 文件中完全移除该快捷方式。

6、android:icon

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

配置内部元素

7.action节点

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

7.1、android:action:启动方式

7.2、android:targetPackage:目标包名

7.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)及更高版本中,您可以创建固定快捷方式。与静态和动态快捷方式不同,固定快捷方式在受支持的启动器中显示为单独的图标

android:icon,kotlin,Jetpack,android,android,kotlin

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

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

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

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

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

3、尝试通过调用 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, /* request code */ 0,
                pinnedShortcutCallbackIntent, /* flags */ 0)

            shortcutManager.requestPinShortcut(pinShortcutInfo,
                successCallback.intentSender)
        }

    }

添加能力:capability

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

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

android:icon,kotlin,Jetpack,android,android,kotlin文章来源地址https://www.toymoban.com/news/detail-700340.html

到了这里,关于Android 应用Icon快捷(shortcut)功能的详解(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android桌面长按图标快捷方式——Shortcuts

    简介 当我们在长按Android应用的桌面图标时,一般回弹出一个列表,上面一般有应用信息、卸载应用等功能,并且部分应用在这里还添加了自己的快捷方式,今天主要介绍如何添加自定义的快捷方式。 长按桌面显示的快捷方式在Android中叫Shortcut,它有两种创建方式,分为静态

    2023年04月22日
    浏览(44)
  • windows应用程序icon缓存、查看图标、icon制作方法

    在vs中替换c++程序的图标后,需要重新编译,但是很多情况下都不会刷新,还是看到老的图标,只能重启电脑才能看到新的图标。 通过ChatGPT得到相关的回答如下: 如果在 Windows 上更换了可执行文件 (.exe) 的图标,但是在图标文件已经更改的情况下仍然显示旧的图标,可能是因

    2024年02月14日
    浏览(44)
  • 微信小程序点击icon实现分享功能

    1.小程序分享功能实现方式 小程序分享功能有两种方式,监听用户点击页面内转发按钮( 组件 open-type=“share”)或右上角菜单“转发”按钮的行为,并自定义转发内容。 使用微信小程序的分享功能需要定义onShareAppMessage(Object object)函数,存在该函数分享功能才能被触发 官网

    2024年02月10日
    浏览(66)
  • Flutter 桌面开发 | 键盘快捷键功能 - Shortcuts 组件

    在桌面端的开发中,键盘快捷键是非常常见而必要的,比如 Ctrl + F 搜索, Ctrl + C 复制等。Flutter 既然可以开发桌面端应用,那必然要提供自定义快捷键,触发事件的功能支持。这就是本节要介绍的 Shortcuts 组件体系,相关代码后续会放入 FlutterUnit 中,敬请关注 ~ 1. Shortcuts 组

    2024年02月05日
    浏览(76)
  • [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包

    在Flutter开发中,修改应用程序的包名(也称作Application ID)涉及几个步骤,因为包名是在项目的Android和iOS平台代码中分别配置的。请按照以下步骤操作: Flutter工程中全局搜索替换包名 首先,打开您的 android/ app / build.gradle 文件,搜索\\\"applicationId\\\",查看当前android工程使用的包

    2024年04月12日
    浏览(40)
  • 关于vue3+版本引入element-ui使用icon问题 (icon不显示问题)vue3中input里面不显示icon图标

    1)、引入  2)、效果: 出来了一个大图标  3)、代码 1)、引入  2)、效果:  3)、代码

    2024年02月16日
    浏览(53)
  • 开源Icon大合集

    Remix Icon 是一套面向设计师和开发者的开源图标库,所有的图标均可免费用于个人项目和商业项目。 与拼凑混搭的图标库不同,Remix Icon 的每一枚图标都是由设计师按照统一规范精心绘制的,在拥有完美像素对齐的基础上,确保每一枚图标风格一致且简洁易读。 图标以 24x24

    2024年02月02日
    浏览(41)
  • element icon图标用法

    1.基础用法:  2.直接使用 SVG 图标 3.下载成PNG使用                  

    2024年04月09日
    浏览(39)
  • WPF icon的设置

    想给控件设置个圆形图片 ,代码如下:   报错,提示   expected type is ‘geometry’, actual type is ‘image’ 改成如下:

    2024年02月15日
    浏览(29)
  • 如何给网页添加icon图标?

    做一些小页面或者项目的时候,我们会发现每个网站都有自己的小图标,下面我就告诉你怎么弄这个,超简单的!💜💜 网页图标favicon.ico小简介 favicon.ico一般用于作为缩略的网站标志,它显示在浏览器的地址栏、浏览器标签上或者在收藏夹上,是展示网站个性的缩略logo标志

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包