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" />

    我是天王盖地虎的分割线                                                             

  • 相关阅读:
    Java synchronized对象级别与类级别的同步锁
    java并发编程JUC第十二篇:AtomicInteger原子整型
    java并发编程JUC第十一篇:如何在线程之间进行对等数据交换
    java并发编程JUC第十篇:CyclicBarrier线程同步
    java并发编程JUC第九篇:CountDownLatch线程同步
    java并发编程工具类JUC第八篇:ConcurrentHashMap
    分享Sql性能优化的一些建议
    java并发编程工具类JUC第七篇:BlockingDeque双端阻塞队列
    java并发编程工具类JUC第六篇:SynchronousQueue同步队列
    java并发编程工具类JUC第五篇:PriorityBlockingQueue优先级队列
  • 原文地址:https://www.cnblogs.com/yydcdut/p/4154377.html
Copyright © 2011-2022 走看看