content: /**
   * Copyright 2014 Zhenguo Jin
   * <p/>
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * <p/>
   * http://www.apache.org/licenses/LICENSE-2.0
   * <p/>
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package com.rsen.github.androidutils;
  
  import android.app.Activity;
  import android.content.ComponentName;
  import android.content.ContentResolver;
  import android.content.Intent;
  import android.database.Cursor;
  import android.net.Uri;
  
  import com.angcyo.rsen.R;
  
  
  /**
   * 创建删除快捷图标
   *
   * @author jingle1267@163.com
   *         <p/>
   *         需要权限: com.android.launcher.permission.INSTALL_SHORTCUT com.android.launcher.permission.UNINSTALL_SHORTCUT
   */
  public final class ShortCutUtils {
  
      /**
       * Don't let anyone instantiate this class.
       */
      private ShortCutUtils() {
          throw new Error("Do not need instantiate!");
      }
  
      /**
       * 检测是否存在快捷键
       *
       * @param activity Activity
       * @return 是否存在桌面图标
       */
      public static boolean hasShortcut(Activity activity) {
          boolean isInstallShortcut = false;
          final ContentResolver cr = activity.getContentResolver();
          final String AUTHORITY = "com.android.launcher.settings";
          final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY
                  + "/favorites?notify=true");
          Cursor c = cr.query(CONTENT_URI,
                  new String[]{"title", "iconResource"}, "title=?",
                  new String[]{activity.getString(R.string.app_name).trim()},
                  null);
          if (c != null && c.getCount() > 0) {
              isInstallShortcut = true;
          }
          return isInstallShortcut;
      }
  
      /**
       * 为程序创建桌面快捷方式
       *
       * @param activity Activity
       */
      public static void addShortcut(Activity activity) {
          Intent shortcut = new Intent(
                  "com.android.launcher.action.INSTALL_SHORTCUT");
          // 快捷方式的名称
          shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
                  activity.getString(R.string.app_name));
          shortcut.putExtra("duplicate", false); // 不允许重复创建
          Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
          shortcutIntent.setClassName(activity, activity.getClass().getName());
          shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
          // 快捷方式的图标
  //        ShortcutIconResource iconRes = ShortcutIconResource.fromContext(
  //                activity, R.drawable.ic_launcher);
  //        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);
  
          activity.sendBroadcast(shortcut);
      }
  
      /**
       * 删除程序的快捷方式
       *
       * @param activity Activity
       */
      public static void delShortcut(Activity activity) {
          Intent shortcut = new Intent(
                  "com.android.launcher.action.UNINSTALL_SHORTCUT");
          // 快捷方式的名称
          shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,
                  activity.getString(R.string.app_name));
          String appClass = activity.getPackageName() + ""
                  + activity.getLocalClassName();
          ComponentName comp = new ComponentName(activity.getPackageName(),
                  appClass);
          shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(
                  Intent.ACTION_MAIN).setComponent(comp));
          activity.sendBroadcast(shortcut);
      }
  }
  