zoukankan      html  css  js  c++  java
  • Android -- ShortCut

    添加                                                                                   

    添加快捷方式是向桌面应用(launcher)发送相关action的广播:

    public static final String ACTION_ADD_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT";

    Code:

    private void addShortcut(String name) {
            Intent addShortcutIntent = new Intent(ACTION_ADD_SHORTCUT);
    
            // 不允许重复创建
            addShortcutIntent.putExtra("duplicate", false);// 经测试不是根据快捷方式的名字判断重复的
        
    // 名字
            addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
    
            // 图标
            addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                    Intent.ShortcutIconResource.fromContext(MainActivity.this,
                            R.drawable.ic_launcher));
    
            // 设置关联程序
            Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
            launcherIntent.setClass(MainActivity.this, MainActivity.class);
            launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    
            addShortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent);
    
            // 发送广播
            sendBroadcast(addShortcutIntent);
        }

    移除                                                                                   

    action:

    public static final String ACTION_REMOVE_SHORTCUT = "com.android.launcher.action.UNINSTALL_SHORTCUT";

    Code:

    private void removeShortcut(String name) {
    
            Intent intent = new Intent(ACTION_REMOVE_SHORTCUT);
    
            // 名字
            intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
    
            // 设置关联程序
            Intent launcherIntent = new Intent(MainActivity.this,MainActivity.class).setAction(Intent.ACTION_MAIN);
    
            intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launcherIntent);
    
            // 发送广播
            sendBroadcast(intent);
        }

    权限                                                                                   

    <!-- 添加快捷方式 -->
        <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
        <!-- 移除快捷方式 -->
        <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

    我是天王盖地虎的分割线                                                             

  • 相关阅读:
    使用electron+vue开发一个跨平台todolist(便签)桌面应用
    初识ABP vNext(12):模块的独立运行与托管
    【老孟Flutter】41个酷炫的 Loading 组件库
    【Flutter 实战】酷炫的开关动画效果
    【老孟Flutter】自定义文本步进组件
    【老孟Flutter】6种极大提升Flutter开发效率的工具包
    【Flutter 实战】pubspec.yaml 配置文件详解
    Flutter 1.22版本新增的Button
    【Flutter 混合开发】添加 Flutter 到 iOS
    【Flutter 混合开发】添加 Flutter 到 Android Fragment
  • 原文地址:https://www.cnblogs.com/yydcdut/p/4154377.html
Copyright © 2011-2022 走看看