/**
* 判断桌面是否已经存在快捷方式
*/
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
Android_创建和删除快捷图标