Android快捷图标的创建与移除
2018-07-20 来源:open-open
/** * 添加桌面快捷方式 * * @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; }
需要声明的权限
标签: 权限
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐