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 ; }

更多相关文章

  1. Android各种访问权限Permission详解
  2. 获取 Android 4.2 的 ROOT 权限(越狱)
  3. Android的权限控制机制
  4. Android Permission访问权限大全
  5. Android 应用程序(APK) 如何获得系统签名权限 强制关闭程序(后台
  6. Android 权限被拒绝,跳转至权限设置界面
  7. Android 权限添加
  8. Android 预置APK的权限授予

随机推荐

  1. android得到version name
  2. Android实现记住密码功能
  3. 隐藏Android底部的虚拟按键
  4. Android(安卓)创建菜单
  5. android 播放音频和视频
  6. Android(安卓)快速使用 string.xml 中的a
  7. android 短信群发
  8. android 参数 加密,解密 参数提交,数据返回
  9. android之PopUpWindow使用实例
  10. Android(安卓)解决阿里云直播水印问题