Back to project page android-utils.
The source code is released under:
Apache License
If you think the Android project android-utils listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/** * Copyright 2014 Zhenguo Jin//w w w .jav a 2 s . co m * * 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 * * http://www.apache.org/licenses/LICENSE-2.0 * * 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.worthed.util; import com.worthed.R; import android.app.Activity; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Intent; import android.content.Intent.ShortcutIconResource; import android.database.Cursor; import android.net.Uri; /** * ?????????? * * @author jingle1267@163.com * <p/> * ????????: com.android.launcher.permission.INSTALL_SHORTCUT com.android.launcher.permission.UNINSTALL_SHORTCUT */ public class ShortCutUtils { /** * ????????????? * * @param activity Activity * @return ???????????? */ public 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 = Intent.ShortcutIconResource.fromContext( activity, R.drawable.ic_launcher); shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); activity.sendBroadcast(shortcut); } /** * ????????????? * * @param activity Activity */ public 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); } }