首页 > 代码库 > [Android Pro] 创建快捷方式,删除快捷方式,查询是否存在快捷方式
[Android Pro] 创建快捷方式,删除快捷方式,查询是否存在快捷方式
1: 创建快捷方式
需要权限: <uses-permission android:name=
"com.android.launcher.permission.INSTALL_SHORTCUT"
/>
private static void createShortcut(Context cxt, String shortcutName, int shortcutIconRes, String className, boolean duplicate, boolean laucherCategory) { Intent intent = getShortCutIntent(cxt, cxt.getPackageName(), className, shortcutName, laucherCategory); int iconsize = cxt.getResources().getDimensionPixelSize(Res.dimen.app_icon_size); BitmapDrawable icon = (BitmapDrawable) cxt.getResources().getDrawable(shortcutIconRes); Bitmap bmp = ImageUtils.scaleTo(icon.getBitmap(), iconsize, iconsize, false); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bmp); intent.putExtra(EXTRA_SHORTCUT_DUPLICATE, duplicate); // Now, notify the launcher to create the shortcut cxt.sendBroadcast(intent); }
private static Intent getShortCutIntent(Context cxt, String pkgName, String className, String shortcutName, boolean laucherCategory) { // Prepare the intents for shortcut Intent shortcutIntent = new Intent(Intent.ACTION_VIEW); shortcutIntent.setClassName(pkgName, className); shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); shortcutIntent.putExtra(Constants.EXTRA_FROM_KEY, Constants.EXTRA_FROM_VALUE_SHORTCUT); if (laucherCategory) { shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER); shortcutIntent.setAction(Intent.ACTION_MAIN); } Intent intent = new Intent(ACTION_INSTALL_SHORTCUT); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName); return intent; }
2:删除快捷方式(MIUI系统不支持):
需要权限:<uses-permission android:name=
"com.android.launcher.permission.UNINSTALL_SHORTCUT"
/>
public static void removeShortcut(Context cxt, String shortcutName, String className, boolean removeAll) { // Prepare the intents for shortcut Intent shortcutIntent = new Intent(Intent.ACTION_VIEW); shortcutIntent.setClassName(cxt, className); Intent intent = new Intent(ACTION_UNINSTALL_SHORTCUT); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName); intent.putExtra(EXTRA_SHORTCUT_DUPLICATE, removeAll); // Now, notify the launcher to remove the shortcut cxt.sendBroadcast(intent); }
3:查询快捷方式是否存在(三方rom大部分查询失败,cursor为null)
需要权限:<uses-permission android:name=
"
com.android.launcher.permission.READ_SETTINGS"
/>
或者 <uses-permission android:name=
"
com.android.launcher.permission.WRITE_SETTINGS"
/>
private boolean hasShortcut(){ boolean isInstallShortcut = false; final ContentResolver cr = activity.getContentResolver(); final String AUTHORITY ="com.android.launcher.settings"; final Uri CONTENT_URI = Uri.parse("content://" +AUTHORITY + "/favorites?notify=true"); Cursor c = cr.query(CONTENT_URI,new String[] {"title","iconResource" },"title=?", new String[] {getString(R.string.app_name).trim()}, null); if(c!=null && c.getCount()>0){
//String title =c.getString(c.getColumnIndexOrThrow(
"title"
));
isInstallShortcut = true ; } return isInstallShortcut ; }
[Android Pro] 创建快捷方式,删除快捷方式,查询是否存在快捷方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。