Android 添加、移除和判断 桌面快捷方式图标
思路:
Launcher为了应用程序能够定制自己的快捷图标,就注册了一个 BroadcastReceiver 专门接收其他应用程序发来的快捷图标定制信息。所以只需要根据该 BroadcastReceiver 构造出相对应的Intent并装入我们的定制信息,最后调用 sendBroadcast 方法就可以创建一个快捷图标了。
效果:
步骤:
- 创建快捷方式必须要有权限;
- 创建快捷方式的广播的 Intent 的 action 设置 com.android.launcher.action.INSTALL_SHORTCUT
- 删除快捷方式的广播的 Intent 的 action 设置 com.android.launcher.action.UNINSTALL_SHORTCUT
- 设置快捷方式的图片和名称等信息放在 Intent 中;
需要添加的权限如下:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>
核心代码为:
/** * 添加当前应用的桌面快捷方式 * * @param context */ public static void addShortcut(Context context, int appIcon, String title) { Intent shortcut = new Intent( "com.android.launcher.action.INSTALL_SHORTCUT"); Intent shortcutIntent = context.getPackageManager() .getLaunchIntentForPackage(context.getPackageName()); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); // 快捷方式名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); // 不允许重复创建(不一定有效) shortcut.putExtra("duplicate", false); // 快捷方式的图标 Parcelable iconResource = Intent.ShortcutIconResource.fromContext(context, appIcon); shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); context.sendBroadcast(shortcut); }移除
/** * 删除当前应用的桌面快捷方式 * !!!小米系统暂时没有效果!!! * * @param context */ public static void delShortcut(Context context, String title) { Intent shortcut = new Intent( "com.android.launcher.action.UNINSTALL_SHORTCUT"); // 快捷方式名称 shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title); Intent shortcutIntent = context.getPackageManager() .getLaunchIntentForPackage(context.getPackageName()); shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); context.sendBroadcast(shortcut); }
************** 分享技术知识,分享快乐喜悦*******************
【集赞】参与H3BPM 朋友圈集赞活动,豪礼任性选
【推荐】Google+GitHub联手打造前端工程师课程
· 罗永浩的心酸创业史:写“段子”是因为没钱没资源
· 花旗看好互联网板块 力荐Facebook等5支网络股
· 欠联通超亿元巨款到期 分享通信发展陷“停滞”
· 小米6、魅族PRO 7、OPPO Find 9,上半年的国产新机全在这
· 三星微软苹果Linux基金会紧急应对维基解密曝光漏洞
» 更多新闻...
· 「代码家」的学习过程和学习经验分享
· 写给未来的程序媛
· 高质量的工程代码为什么难写
· 循序渐进地代码重构