標籤:android style blog color java io for ar div
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] 建立捷徑,刪除捷徑,查詢是否存在捷徑