• 添加(创建)和删除及判断是否存在桌面快捷方式



    /**
    * 判断桌面是否已添加快捷方式
    *
    * @param cx
    * @param titleName
    * 快捷方式名称
    * @return
    */
    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;
    }

    /**
    * 删除当前应用的桌面快捷方式
    *
    * @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();
    Log.v("test", "title:" + title);
    } 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
    * @param appName
    * 快捷方式名称
    */
    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();
    Log.v("test", "title:" + title);
    } catch (Exception e) {
    }
    // 快捷方式名称
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, title);
    // 不允许重复创建(不一定有效)
    shortcut.putExtra("duplicate", false);
    // 快捷方式的图标
    Parcelable iconResource = Intent.ShortcutIconResource.fromContext(cx, R.drawable.icon);
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);

    cx.sendBroadcast(shortcut);
    }

    转载于:http://orgcent.com/android-add-del-shortcut-desktop/

  • 相关阅读:
    第三章 传奇的开始--Delphi(附读书笔记)
    南沙才是根本,进军西太平洋就是一个伪命题
    Qt之自定义插件(for Qt Designer)
    人类本来就是在无奈中前进的
    亚投行国家分工非常明确,一路一带是欧亚大融合之路,欢呼吧!
    冒泡排序
    webkit中DOM 事件有多少
    在TMemo上画一条线(超级简单,举一反三)
    判断系统64位(使用GetNativeSystemInfo函数,XP时代就有这个函数了)
    项目的大小衡量标准,以及项目演进的方法(填空架子,持续集成,边开发边测试效果)
  • 原文地址:https://www.cnblogs.com/shortboy/p/2605071.html
Copyright © 2020-2023  润新知