Android ShortCutManager 替换静态快捷方式为动态快捷方式。
创始人
2024-08-15 18:00:06
0

要替换Android的静态快捷方式为动态快捷方式,可以使用Android的ShortcutManager类。下面是一个示例代码,演示了如何创建、更新和删除动态快捷方式。

import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
import android.graphics.drawable.Icon;
import android.os.Build;
import android.os.Bundle;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import java.util.Arrays;

public class MainActivity extends AppCompatActivity {

    private static final String SHORTCUT_ID = "dynamic_shortcut";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
            ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

            // 创建快捷方式的意图
            Intent intent = new Intent(this, ShortcutActivity.class);
            intent.setAction(Intent.ACTION_VIEW);

            // 创建动态快捷方式
            ShortcutInfo shortcut = new ShortcutInfo.Builder(this, SHORTCUT_ID)
                    .setShortLabel("Dynamic Shortcut")
                    .setLongLabel("Open dynamic shortcut")
                    .setIcon(Icon.createWithResource(this, R.drawable.dynamic_shortcut_icon))
                    .setIntent(intent)
                    .build();

            // 添加动态快捷方式到快捷方式列表
            shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.N_MR1)
    @Override
    protected void onResume() {
        super.onResume();

        ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

        // 更新动态快捷方式
        ShortcutInfo shortcut = new ShortcutInfo.Builder(this, SHORTCUT_ID)
                .setShortLabel("Updated Dynamic Shortcut")
                .setLongLabel("Open updated dynamic shortcut")
                .setIcon(Icon.createWithResource(this, R.drawable.updated_dynamic_shortcut_icon))
                .build();

        shortcutManager.updateShortcuts(Arrays.asList(shortcut));
    }

    @RequiresApi(api = Build.VERSION_CODES.N_MR1)
    @Override
    protected void onPause() {
        super.onPause();

        ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);

        // 删除动态快捷方式
        shortcutManager.removeDynamicShortcuts(Arrays.asList(SHORTCUT_ID));
    }
}

在这个示例中,我们在onCreate()方法中创建了一个动态快捷方式并将其添加到快捷方式列表中。在onResume()方法中,我们更新了动态快捷方式的标签和图标。在onPause()方法中,我们删除了动态快捷方式。

请注意,这段代码需要在Android 7.1(API级别25)及更高版本上运行。在较旧的Android版本上,动态快捷方式可能不起作用。

相关内容

热门资讯

第三分钟带你开挂!潮汕掌上娱乐... 您好:这款天天开心王国辅助器游戏是可以开挂的,确实是有挂的,很多玩家在这款天天开心王国辅助器游戏中打...
第一分钟带你发现!随意玩正版房... 随意玩正版房卡有开挂是一款专注玩家量身打造的游戏记牌类型软件,在随意玩正版房卡有开挂这款游戏中我们可...
四分钟带你开挂!哥哥打大a辅助... 【亲,哥哥打大a辅助工具 这款游戏可以开挂的,确实是有挂的,很多玩家在这款哥哥打大a辅助工具中打牌都...
第三分钟带你讲解!边锋干橙眼辅... 第三分钟带你讲解!边锋干橙眼辅助器名称,泸州大二新手攻略,系统教程(真实有挂)-哔哩哔哩 【无需打开...
第九分钟带你详情!新道游科技透... 第九分钟带你详情!新道游科技透视收费,四川游戏家园破解版,新版2026教程(有挂辅助)-哔哩哔哩>>...
第十分钟带你科普!川南九九辅助... 您好:这款川南九九辅助游戏是可以开挂的,确实是有挂的,很多玩家在这款川南九九辅助游戏中打牌都会发现很...
四分钟带你开挂!胡乐辅助脚本的... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
第七分钟带你了解!老k游戏辅助... 第七分钟带你了解!老k游戏辅助,决战卡五星辅助,细节揭秘(竟然有挂)-哔哩哔哩;一、决战卡五星辅助有...
8分钟带你讲解!钱塘十三水辅助... 8分钟带你讲解!钱塘十三水辅助器下载免费,微乐陕西三代自建房挂,玩家教你(有挂方法)-哔哩哔哩;无需...
三分钟带你了解!约战武汉辅助软... 三分钟带你了解!约战武汉辅助软件,欢乐二七十娃,大神讲解(有挂方略)-哔哩哔哩 >>您好:软件加薇1...