zoukankan      html  css  js  c++  java
  • [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 ; }
  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/3940973.html
Copyright © 2011-2022 走看看