/** * 判断桌面是否已经存在快捷方式 */ private boolean isExit() { Uri uri = null; if (android.os.Build.VERSION.SDK_INT < 8) { uri = Uri.parse("content://com.android.launcher.settings/favorites"); } else { uri = Uri.parse("content://com.android.launcher2.settings/favorites"); } String selection = "title=?"; String[] selectionArgs = new String[] { "快捷图标名称" }; Cursor cursor = getContentResolver().query(uri, null, selection, selectionArgs, null); if (cursor.moveToNext()) { cursor.close(); return true; } else { cursor.close(); return false; } } public void createShortcut(View view) { if (isExit()) { Toast.makeText(getApplicationContext(), "快捷方式已经存在", 0).show(); return; } Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.logo); Intent intent = new Intent(); intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "快捷图标名称"); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); Intent intent2 = new Intent(); // 点击图标意图 intent2.setAction(Intent.ACTION_MAIN); intent2.addCategory(Intent.CATEGORY_LAUNCHER); intent2.setComponent(new ComponentName(this, MainActivity.class)); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent2); sendBroadcast(intent); }
public void delShortcut(View view) { Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.logo); Intent intent = new Intent(); intent.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT"); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "快捷图标名称"); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); Intent intent2 = new Intent(); intent2.setAction(Intent.ACTION_MAIN); intent2.addCategory(Intent.CATEGORY_LAUNCHER); intent2.setComponent(new ComponentName(this, MainActivity.class)); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent2); sendBroadcast(intent); }
Android_创建和删除快捷图标,布布扣,bubuko.com
原文地址:http://blog.csdn.net/zimo2013/article/details/38493571