- /**
- * 添加桌面快捷方式
- *
- * @param view
- */
- public void click1(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, "LOL");
- // 设置图标
- 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);
- }
- /**
- * 删除桌面快捷方式
- *
- * @param view
- */
- public void click2(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, "LOL");
- // 设置图标
- 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);
- }
- /**
- * 判断桌面是否已经存在快捷方式
- *
- * @return
- */
- private boolean isExit() {
- Uri uri = null;
- // 不同版本中的Uri不同
- if (getSdkVersion() < 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[] { "LOL" };
- Cursor cursor = getContentResolver().query(uri, null, selection,
- selectionArgs, null);
- if (cursor.moveToNext()) {
- cursor.close();
- return true;
- } else {
- cursor.close();
- return false;
- }
- }
需要声明的权限
- /**
- * 获得手机SDK的版本
- *
- * @return
- */
- private int getSdkVersion() {
- return android.os.Build.VERSION.SDK_INT;
- }
来源: http://www.phpxs.com/code/1001792/