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 = 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[] {mapViewActivity.getString(R.string.app_name).trim()}, null);

        if(c!=null && c.getCount()>0){

            isInstallShortcut = true ;

        }

        return isInstallShortcut ;

    }

2, 创建


1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

/**

     * 为程序创建桌面快捷方式

     */

    private void addShortcut(){ 

        Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT"); 

              

        //快捷方式的名称 

        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); 

        shortcut.putExtra("duplicate"false); //不允许重复创建 

        /****************************此方法已失效*************************/

        //ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName()); 

        //shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));    

     /******************************end*******************************/

     Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);

     shortcutIntent.setClassName(thisthis.getClass().getName());

     shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);

        //快捷方式的图标 

        ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon); 

        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); 

              

        sendBroadcast(shortcut); 

    

  

3, 删除

 


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<strong>    /**

     * 删除程序的快捷方式

     */

    private void delShortcut(){ 

        Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT"); 

              

        //快捷方式的名称 

        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); 

        String appClass = this.getPackageName() + "." +this.getLocalClassName(); 

        ComponentName comp = new ComponentName(this.getPackageName(), appClass); 

        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp)); 

              

        sendBroadcast(shortcut); 

              

    

</strong>

3, 声明权限

在AndroidManifest.xml 文件中声明 创建和删除快捷方式时声明权限


1

2

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /> 

<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

时间: 2024-10-14 19:35:20

Android创建和删除桌面快捷方式的相关文章

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

ubuntu创建文件夹桌面快捷方式

最近在使用dropbox,用来存储一些自己的markdown笔记和pdf文件.觉得放一个快捷方式在桌面上比较方便,但是lxde似乎没有直接创建桌面快捷方式的功能(或者是我没有找到),就上网查了一下,顺便也记在这里. sudo ln -sT [srcDir] [dstDir/name] 像我这里,因为是创建dropbox的桌面快捷方式,所以完整的命令就是 sudo ln -sT /home/{user_name}/Dropbox/     /home/{user_name}/Desktop/Dro

java实现软件程序开机自动启动和创建程序的桌面快捷方式源代码

一.java实现.exe程序的开机自动启动 1.描述 自己在eclipse编写的java项目用exe4j Wizard打包成一个.exe可执行文件,并让用户可以开机自动启动. 2.步骤 1.   获得本软件中.exe可执行文件的路径 2.   在Windows系统中的开机启动栏存放该.exe可执行文件的快捷方式,即可实现开机自动启动. 3.代码 private void startFolderMethod() { String path = System.getProperty("user.di

Win10创建mysql8.0桌面快捷方式以及启动mysql.exe闪退问题

1.先找到mysql的bin目录,将Mysql.exe发送快捷方式到桌面. 2.然后右键选择属性,将目标后面添加上 -uroot -p 我的完整目标如下: E:\mysql-8.0.17-winx64\bin\mysql.exe -uroot -p 双击快捷方式 原文地址:https://www.cnblogs.com/sunbr/p/11565086.html

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

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

Android -- 创建桌面快捷方式

/** * * 返回添加到桌面快捷方式的Intent: * * 1.给Intent指定action="com.android.launcher.INSTALL_SHORTCUT" * * 2.给定义为Intent.EXTRA_SHORTCUT_INENT的Intent设置与安装时一致的action(必须要有) * * 3.添加权限:com.android.launcher.permission.INSTALL_SHORTCUT */ public Intent getShortcutT

创建ride桌面快捷方式及打不开原因分析

使用命令安装RobotFramework-ride出现没有桌面快捷方式,对于习惯使用桌面快捷方式打开应用的用户来说,是一件很麻烦的事情.使用命令来打开ride,首先你要先在cmd进入目录,比如:D:\Python27\Scripts,然后使用python ride.py的命令来打开. 下面介绍一下如何创建ride的桌面快捷方式: 第一步,在桌面点击鼠标右键,新建一个"快捷方式",在弹出框输入:D:\Python27\pythonw.exe -c "from robotide

QQ是怎样实现好友桌面快捷方式的?

QQ是怎样实现好友桌面快捷方式的? 不知道什么时候,QQ推出了好友桌面快捷方式.方便用户和最常保持联系的好友一键联系.核心功能一:若QQ启动了.则双击快捷方式直接打开好友聊天界面:核心功能二:若QQ未启动,则双击快捷方式后启动QQ后打开好友聊天界面. 但其是怎样实现的呢?让我们一起挖一挖. 一.QQ好友桌面快捷方式操作演示        直接上图,非常明了,只是多解释. 二.QQ好友桌面快捷方式的Windows实现 上图是桌面好友快捷方式的几个关键属性.解析例如以下: 1).目标--关联的进程.

好系统教您WinXP系统桌面快捷方式打不开怎么办

相信很多用户常常为了方法操作都会将软件安装在桌面,这样正在桌面上就形成一个个快捷方式图标了,可是最近有很多winxp用户反映桌面快捷方式打不开了,这就让用户非常苦恼.那么遇到这个问题该如何解决呢?现在小编就为大家介绍winxp系统桌面快捷方式打不开的解决方法. 下载安装好应用程序之后一般在桌面上出现一个程序相应的图标,这也就是我们常说的桌面快捷方式,通过快捷方式我们可以快速的对程序进行访问操作,.但是有的朋友却会遇到电脑桌面的快捷方式无法打开程序的情况,而且人们并不会去刻意记住应用程序的安装位置