频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android中创建和删除快捷方式示例
2011-12-23 16:27:20           
收藏   我要投稿

Android中创建和删除快捷方式示例 Android系统中支持快捷方式这一特性,这样使得用户更快更好地使用应用或者软件,当然,有些系统提供了直接拖拽创建快捷方式的功能,这里我们将简单介绍一下android中使用代码如何创建和删除快捷方式。 以下源码来源于互联网,本人稍作修改和注释。原理主要是使用android系统的一个一个广播机制,我们需要做的是实例一个Intent对象,并对这个对象做制定的设置,然后发送一个广播就可以了,然后其他的操作,委托给别的程序做就可以了,就是这么简单。源码如下。

1. package ps.androidyue.shortcutdemo; 
2.  
3. import android.app.Activity; 
4. import android.content.ComponentName; 
5. import android.content.Intent; 
6. import android.content.Intent.ShortcutIconResource; 
7. import android.os.Bundle; 
8. import android.view.View; 
9. import android.widget.Button; 
10.  
11. public class ShortCutDemoActivity extends Activity { 
12.     //安装和卸载快捷方式动作常量  
13.     private final String INTENT_ACTION_INSTALL_SHORTCUT="com.android.launcher.action.INSTALL_SHORTCUT"; 
14.     private final String INTENT_ACTION_UNINSTALL_SHORTCUT="com.android.launcher.action.UNINSTALL_SHORTCUT"; 
15.     private Button btnAddShortCut,btnRemoveShortCuts; 
16.     /** Called when the activity is first created. */ 
17.     @Override 
18.     public void onCreate(Bundle savedInstanceState) { 
19.         super.onCreate(savedInstanceState); 
20.         setContentView(R.layout.main); 
21.         this.initializeViews(); 
22.     } 
23.      
24.     /*
25.      * 初始化需要的视图
26.      */ 
27.     private void initializeViews(){ 
28.         this.initializeButtons(); 
29.     } 
30.      
31.     /*
32.      * 初始化需要的button
33.      */ 
34.     private void initializeButtons(){ 
35.         this.btnAddShortCut=(Button)this.findViewById(R.id.btnAddShortCuts); 
36.         this.btnAddShortCut.setOnClickListener(new View.OnClickListener() { 
37.              
38.             @Override 
39.             public void onClick(View v) { 
40.                 //添加快捷方式  
41.                 addShortcut();   
42.             } 
43.         }); 
44.         this.btnRemoveShortCuts=(Button)this.findViewById(R.id.btnRemoveShortCuts); 
45.         this.btnRemoveShortCuts.setOnClickListener(new View.OnClickListener() { 
46.              
47.             @Override 
48.             public void onClick(View v) { 
49.                 //删除快捷方式  
50.                 delShortcut(); 
51.             } 
52.         }); 
53.     } 
54.     
55.      
56.     /*
57.      * 为程序创建桌面快捷方式
58.      */ 
59.     private void addShortcut(){ 
60.         //实例化具有安装快捷方式动作的Intent对象  
61.         Intent shortcut = new Intent(this.INTENT_ACTION_INSTALL_SHORTCUT); 
62.         //快捷方式的名称  
63.         shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name)); 
64.         shortcut.putExtra("duplicate", false); //不允许重复创建  
65.              
66.         //指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer  
67.         //注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序  
68.         ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName()); 
69.         shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp)); 
70.         //快捷方式的图标  
71.         ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher); 
72.         shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes); 
73.         //发送创建快捷方式的广播     
74.         sendBroadcast(shortcut); 
75.     } 
76.      
77.     /*
78.      * 删除程序的快捷方式    
79.      */     
80.     private void delShortcut(){      
81.         Intent shortcut = new Intent(this.INTENT_ACTION_UNINSTALL_SHORTCUT);      
82.                   
83.         //快捷方式的名称       www.2cto.com
84.         shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));      
85.                   
86.         //指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer       
87.         //注意: ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式       
88.         String appClass = this.getPackageName() + "." +this.getLocalClassName();      
89.         ComponentName comp = new ComponentName(this.getPackageName(), appClass);      
90.         shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));      
91.         //发送卸载快捷方式的图标           
92.         sendBroadcast(shortcut);      
93.                   
94.     }    
95. } 
 
注意:必须要在manifest.xml中声明权限

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

摘自 BossDarcy的专栏

点击复制链接 与好友分享!回本站首页
上一篇:android 裁剪图片大小 控制图片尺寸
下一篇:android菜单详解一:概述
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站