[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 ;
    }
时间: 2024-10-12 22:44:49

[Android Pro] 创建快捷方式,删除快捷方式,查询是否存在快捷方式的相关文章

Python创建、删除桌面、启动组快捷方式的例子分享

一.Python创桌面建快捷方式的2个例子 例子一: 代码如下: import osimport pythoncomfrom win32com.shell import shell    from win32com.shell import shellcon def createDesktopLnk(filename,lnkname):    shortcut = pythoncom.CoCreateInstance(            shell.CLSID_ShellLink, None

mongoDB集合 文档创建修改删除以及查询命令总结

mongodb在windows下的安装,启动查看上一篇:mongoDB安装详解 一.登录 查看数据库 数据库中的集合 文档 添加文档,修改文档,删除文档 1.查看有哪些数据库可以用: show dbs; 2.查看当前使用的数据库的名称: db.getName(); 3.使用某个数据库,和mysql中一样可以进行数据库之间的转化 use  dbname; 4. 如果没有数据库则创建数据库,mongodb没有提供像mysql等的创建数据库的语句但有相似功能的命令:如果有这个数据库则使用这个数据库如果

[Android Pro] root用户删除文件提示:Operation not permitted

reference to : http://blog.csdn.net/evanbai/article/details/6187578 一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错,就象下边一样: [[email protected] root]# ls -l 1.txt-rw-r--r-- 1 root root 0 Aug 5 23:00 1.txt[[email protected] root]# rm -rf 1.txtrm: cannot unlink `1.txt'

Android应用添加(创建)和删除及判断是否存在桌面快捷方式

Android应用添加(创建)和删除及判断是否存在桌面快捷方式-Android新手入门-eoe 移动开发者论坛 - Powered by Discuz! Android桌面程序提供了应用添加和删除桌面快捷方式的功能以及判断快捷方式是否存在, 只要传入快捷方式标题.图标及点击快捷方式执行的应用Intent即可.代码如下: 1.Android添加桌面快捷方式 /** * 为当前应用添加桌面快捷方式 * * @param cx * @param appName *            快捷方式名称

网络攻防任务二:开机、关机事件触发账户的创建与删除

一.任务要求 设计一个以开机.关机事件为触发条件的计划任务,实现: 1.开机时新建一个用户 2.关机时删除用户 二.解决步骤 (一)实验环境搭建 事件触发的命令是schtasks. 利用schtasks完成的功能主要是:利用确定的日志事件触发net user命令,以达到新增一个管理员账户的目的. 如果利用传统的at命令,首先无法用日志事件触发,其次需要执行多条命令行时,只能将它们编写成.bat的批处理文件进行处理. 由于要用到事件触发,xp没有这个功能,所以要新建一个win7的虚拟机. Win7

Android创建和删除桌面快捷方式

有同学方反馈创建快捷方式后,点击快捷方式后不能启动程序或者提示"未安装程序",貌似是新的rom在快捷方式这块做过修改(由于此文是11年5月所出,估计应该是2.0或2.1的rom),现已修正,HTC G11 2.3.5rom测试通过. 1,判断是否已经创建了快捷方式(在某些机型中需要判断) 1 2 3 4 5 6 7 8 9 10 11 12 13 private boolean hasShortcut() {         boolean isInstallShortcut = fa

Android应用创建手机桌面快捷方式

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation

android 多个shortCut快捷方式实现以及对58同城快捷方式的实现思路的研究

这几天,项目中有个新需求,需要按照模块添加不同的快捷方式到桌面上,从而方便用户的使用.特意进行了研究并分析了下58上面桌面快捷方式的实现. 首先多个shortcut的实现: <activity android:name="com.soyoungboy.android.demo.MainActivity" android:configChanges="keyboardHidden|orientation" android:label="@string/

JavaScript之jQuery-3 jQuery操作DOM(查询、样式操作、遍历节点、创建插入删除、替换、复制)

一.jQuery操作DOM - 查询 html操作 - html(): 读取或修改节点的HTML内容,类似于JavaScript中的innerHTML属性 文本操作 - text(): 读取或修改节点的文本内容,类似于JavaScript中的textContent属性 值操作 - val(): 读取或修改节点的value属性值,类似于 JavaScript 中的value值 属性操作 - attr(): 读取或者修改节点的属性 - removeAttr(): 删除节点的属性 二.jQuery操作