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/

  • 相关阅读:
    Linux 查看磁盘读写速度IO使用情况
    Kubernete安装
    jenkins问题解决
    Jenkins用HTTP Request Plugin插件进行网站的监控/加探针(运维监控)
    golang信号signal的处理
    修改docker仓库资源的地址
    centos7修改hostname
    同步CentOS时间
    CentOs查那个目录占空间大
    CentOS7主机名的修改
  • 原文地址:https://www.cnblogs.com/shortboy/p/2605071.html
Copyright © 2011-2022 走看看