Android_创建和删除快捷图标

	/**
	 * 判断桌面是否已经存在快捷方式
	 */
	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,Launcher,快捷图标)