需要的权限:

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

/**    * 快捷方式工具类     */public class ShortCutUtils {    /**     * 添加当前应用的桌面快捷方式     * @param cx     */    public static void addShortcut(Context cx) {        Intent shortcut = new Intent(                "com.android.launcher.action.INSTALL_SHORTCUT");        Intent shortcutIntent = cx.getPackageManager()                .getLaunchIntentForPackage(cx.getPackageName());        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);        // 获取当前应用名称        String title = null;        try {            final PackageManager pm = cx.getPackageManager();            title = pm.getApplicationLabel(                    pm.getApplicationInfo(cx.getPackageName(),                            PackageManager.GET_META_DATA)).toString();        } catch (Exception e) {        }        // 快捷方式名称        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);        // 不允许重复创建(不一定有效)        shortcut.putExtra("duplicate", false);        // 快捷方式的图标        Parcelable iconResource = Intent.ShortcutIconResource.fromContext(cx,                R.drawable.ic_launcher);        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);        cx.sendBroadcast(shortcut);    }    /**     * 删除当前应用的桌面快捷方式     * @param cx     */    public static void delShortcut(Context cx) {        Intent shortcut = new Intent(                "com.android.launcher.action.UNINSTALL_SHORTCUT");        // 获取当前应用名称        String title = null;        try {            final PackageManager pm = cx.getPackageManager();            title = pm.getApplicationLabel(                    pm.getApplicationInfo(cx.getPackageName(),                            PackageManager.GET_META_DATA)).toString();        } catch (Exception e) {        }        // 快捷方式名称        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);        Intent shortcutIntent = cx.getPackageManager()                .getLaunchIntentForPackage(cx.getPackageName());        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);        cx.sendBroadcast(shortcut);    }    /**     * 判断当前应用在桌面是否有桌面快捷方式     * @param cx     */    public static boolean hasShortcut(Context cx) {        boolean result = false;        String title = null;        try {            final PackageManager pm = cx.getPackageManager();            title = pm.getApplicationLabel(                    pm.getApplicationInfo(cx.getPackageName(),                            PackageManager.GET_META_DATA)).toString();        } catch (Exception e) {        }        final String uriStr;        if (android.os.Build.VERSION.SDK_INT < 8) {            uriStr = "content://com.android.launcher.settings/favorites?notify=true";        } else {            uriStr = "content://com.android.launcher2.settings/favorites?notify=true";        }        final Uri CONTENT_URI = Uri.parse(uriStr);        final Cursor c = cx.getContentResolver().query(CONTENT_URI, null,                "title=?", new String[] { title }, null);        if (c != null && c.getCount() > 0) {            result = true;        }        return result;    }}

更多相关文章

  1. Android(安卓)从后台进入前台
  2. android 打开wifi
  3. ANDROID轮播广告图片
  4. 老外写的在桌面添加快捷方式(DELPHI XE5 ANDROID)
  5. Android获取WiFi ip相关信息
  6. android studio 3.0 修改release生成的apk名称
  7. Android利用Service实现简易音乐播放器
  8. android 获取当前系统的语言
  9. 导入的ANDROID 项目没有ANDROID的JAR包

随机推荐

  1. Android 含左右边距的布局分隔线XML写法
  2. 从Android中Activity之间的通信说开来
  3. Android(安卓)手势 API的使用
  4. TextView 最多显示2行,每行最多8个字,多余
  5. Android 开发艺术探索笔记之十 -- Androi
  6. Android(安卓)自定义Drawable 实现圆角圆
  7. Android 最全面试题汇总(问题+答案+详解链
  8. Android端腾讯性能监控框架Matrix源码分
  9. 我的第一个Android程序helloword及个人理
  10. adb devices找不到设备