zoukankan      html  css  js  c++  java
  • 添加(创建)和删除及判断是否存在桌面快捷方式


    /**
    * 判断桌面是否已添加快捷方式
    *
    * @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/

  • 相关阅读:
    如何产生 XPO 的WCF服务中间层
    法国达索公司 -- 全球出色的产品设计和体验解决方案商
    DevExpress Ribbon布局多文档界面—XtraTabControl动态增加Tab和关闭选项卡方法 (转)
    Axure 案例及基础部件
    低代码平台
    体检结果(2018年10月,胃肠镜)
    功能性肠道疾病用药一览表
    spartan 6 asynchronous reset and set
    理想
    matlab GUI 初学
  • 原文地址:https://www.cnblogs.com/shortboy/p/2605071.html
Copyright © 2011-2022 走看看