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

简介

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

长按桌面显示的快捷方式在Android中叫Shortcut,它有两种创建方式,分为静态创建和动态创建,并且跟Widget一样,也有对应的管理类来进行管理。废话不多说,直接开始

静态创建

第一步

静态创建分两个步骤,第一个是在Manifest文件中指定快捷方式配置文件的位置,首先找到Launcher的activity标签,添加meta-data标签如下:

<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>
第二步

在resources资源目录下创建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="@mipmap/ic_launcher_round"
        android:shortcutDisabledMessage="@string/disable_hint_message"
        android:shortcutId="shortcut1"
        android:shortcutLongLabel="@string/long_label_one"
        android:shortcutShortLabel="@string/short_label_one">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.example.helloworld.RecyclerViewTestActivity"
            android:targetPackage="com.example.helloworld">
            <extra
                android:name="key1"
                android:value="value1" />
        </intent>
    </shortcut>

    <shortcut
        android:enabled="true"
        android:icon="@mipmap/ic_launcher_round"
        android:shortcutDisabledMessage="@string/disable_hint_message"
        android:shortcutId="shortcut2"
        android:shortcutLongLabel="@string/long_label_two"
        android:shortcutShortLabel="@string/short_label_two">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.example.helloworld.TestViewPagerActivity"
            android:targetPackage="com.example.helloworld">
            <extra
                android:name="key2"
                android:value="value2" />
        </intent>
    </shortcut>
</shortcuts>
<string name="short_label_one">名称一</string>
<string name="short_label_two">名称二</string>
<string name="long_label_one">一个很长很长的长到你无法相信的名称一</string>
<string name="long_label_two">一个略长略长的长到你可以想象的名称二</string>
<string name="disable_hint_message">你确认要禁用该快捷方式吗?</string>
  • enabled 是否开启
  • icon 图标
  • shortcutDisabledMessage 关闭该快捷方式提示的信息
  • shortcutId 唯一标识
  • shortcutLongLabel 长标签,优先展示
  • shortcutShortLabel 短标签,长标签展示不下会展示短标签
  • intent 跳转至Activity的Intent
注意事项

通过xml创建的静态ShortCuts不可以通过代码动态修改与删除,只能通过xml去修改。

动态创建

使用ShortCuts相关的类以及方法即可快速实现动态快捷方式的添加、更改、删除等操作。

object ShortCutManager {

    fun createShortCuts(context: Context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
            ShortcutManagerCompat.removeAllDynamicShortcuts(context)
            val shortCut = ShortcutInfoCompat.Builder(context, "shortCutId")
                .setShortLabel("搜索一下")
                .setLongLabel("搜索一下下")
                .setIcon(IconCompat.createWithResource(context, R.mipmap.ic_launcher))
                .setIntent(Intent(context,MainActivity::class.java).apply {
                    action = Intent.ACTION_VIEW
                })
                .build()
            ShortcutManagerCompat.pushDynamicShortcut(context, shortCut)
        }
    }
}

再合适的地方调用上面的方法即可实现添加ShortCuts,在添加之前删除了所有的动态快捷方式,但是并不会删除通过xml配置的静态快捷方式。
在这里插入图片描述

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Node.js 中创建桌面快捷方式的方法有以下几种: 1. 使用 `node-shortcut` 库: 可以使用 `node-shortcut` 库来创建桌面快捷方式。安装方法: ``` npm install node-shortcut ``` 然后,可以使用以下代码来创建快捷方式: ``` const shortcut = require('node-shortcut'); shortcut.create('C:\\path\\to\\your\\application.exe', 'My Shortcut', { target: 'C:\\path\\to\\your\\application.exe', cwd: 'C:\\path\\to\\your', icon: 'C:\\path\\to\\your\\icon.ico', description: 'My application shortcut', workingDir: 'C:\\path\\to\\your' }, function(err) { if (err) { console.error(err); } else { console.log('Shortcut created successfully'); } }); ``` 2. 使用 `child_process` 模块的 `exec` 方法: 可以使用 Node.js 的 `child_process` 模块的 `exec` 方法来执行系统命令,从而创建快捷方式。安装方法: ``` npm install child_process ``` 然后,可以使用以下代码来创建快捷方式: ``` const childProcess = require('child_process'); const targetPath = 'C:\\path\\to\\your\\application.exe'; const shortcutPath = 'C:\\path\\to\\your\\shortcut.lnk'; const iconPath = 'C:\\path\\to\\your\\icon.ico'; const description = 'My application shortcut'; const command = `powershell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('${shortcutPath}'); $Shortcut.TargetPath = '${targetPath}'; $Shortcut.IconLocation = '${iconPath}'; $Shortcut.Description = '${description}'; $Shortcut.Save();"`; childProcess.exec(command, function(err, stdout, stderr) { if (err) { console.error(err); } else { console.log('Shortcut created successfully'); } }); ``` 3. 使用 `node-windows` 库: 可以使用 `node-windows ### 回答2: 在Node.js中创建桌面快捷方式可以通过使用`windows-shortcuts`模块实现。以下是使用该模块在Windows操作系统中创建桌面快捷方式的步骤: 首先,通过以下命令安装`windows-shortcuts`模块: ```bash npm install windows-shortcuts ``` 接下来,在Node.js文件中导入`windows-shortcuts`模块: ```javascript const createShortcut = require('windows-shortcuts').create; ``` 然后,创建一个新的快捷方式对象,指定目标文件路径、快捷方式名称和输出路径: ```javascript const shortcut = createShortcut({ target: 'C:\\path\\to\\your\\file.exe', name: 'My Shortcut', output: 'C:\\Users\\Username\\Desktop' // 保存到桌面 }); ``` 在此示例中,`target`属性指定了所需创建快捷方式的文件路径,`name`属性指定了快捷方式的名称(你可以根据需要自定义),`output`属性指定了快捷方式的输出路径。 最后,使用`shortcut.save()`方法保存快捷方式文件: ```javascript shortcut.save(); ``` 此方法将在指定的输出路径中创建一个快捷方式文件。 完整的创建桌面快捷方式的示例代码如下: ```javascript const createShortcut = require('windows-shortcuts').create; const shortcut = createShortcut({ target: 'C:\\path\\to\\your\\file.exe', name: 'My Shortcut', output: 'C:\\Users\\Username\\Desktop' // 保存到桌面 }); shortcut.save(); ``` 请注意,此方法仅适用于Windows操作系统。如果你的应用程序需要在其他操作系统上创建桌面快捷方式,你需要使用相应的模块或方法来实现。 ### 回答3: 在Node.js中,可以使用第三方模块`node-os-utils`来创建桌面快捷方式。以下是基本的步骤: 1. 首先,确保已在您的项目中安装了`node-os-utils`模块。您可以使用以下命令来安装该模块: ``` npm install node-os-utils ``` 2. 在您的Node.js文件中,引入所需的模块: ```javascript const { Shortcut } = require('node-os-utils'); ``` 3. 使用`Shortcut`类创建一个`shortcut`对象: ```javascript const shortcut = new Shortcut(); ``` 4. 使用`create`方法创建一个桌面快捷方式。您需要提供快捷方式的目标路径、名称和图标路径(可选): ```javascript const targetPath = '/path/to/your/application.exe'; const shortcutName = 'My Application'; const iconPath = '/path/to/your/application.ico'; shortcut.create(targetPath, shortcutName, iconPath) .then(() => { console.log('桌面快捷方式已创建'); }) .catch((error) => { console.error('创建桌面快捷方式时出错:', error); }); ``` 5. 运行上述Node.js文件,如果一切顺利,您将在桌面上看到一个名为`My Application`的快捷方式。 请注意,以上步骤假设您的操作系统是Windows。如果您使用的是其他操作系统,可能需要使用其他模块或方法来创建桌面快捷方式

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值