开发者社区> 一叶飘舟> 正文

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

简介:
+关注继续查看
/**  
 * 为程序创建桌面快捷方式  
 */  
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); //不允许重复创建   
           
    //指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer   
    //注意: ComponentName的第二个参数必须加上点号(.),否则快捷方式无法启动相应程序   
    ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName());   
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));   
    //快捷方式的图标   
    ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);   
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);   
           
    sendBroadcast(shortcut);   
} 
 
 
/**  
 * 删除程序的快捷方式  
 */  
private void delShortcut(){   
    Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");   
           
    //快捷方式的名称   
    shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));   
           
    //指定当前的Activity为快捷方式启动的对象: 如 com.everest.video.VideoPlayer   
    //注意: ComponentName的第二个参数必须是完整的类名(包名+类名),否则无法删除快捷方式   
    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);   
           
} 
 
 
//声明权限
在AndroidManifest.xml 文件中声明 创建和删除快捷方式时声明权限
view plaincopy to clipboardprint?
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />  
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" /> 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android开发2——创建测试项目
一、创建普通Android项目   二、在AndroidManifest.xml添加两个配置 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.xy.app" androi
804 0
Visual Studio 2015中创建C#的Android项目提示"Value cannot be null"的解决方法
原文:Visual Studio 2015中创建C#的Android项目提示"Value cannot be null"的解决方法 选择C# > Android创建一个Blank App时提示如下错误: Value cannot be null. Parameter name: path1 由于之前本机已安装过Android SDK,在安装Visual Studio 2015时跳过了,并没有为Xamarin指定对应路径导致。
1009 0
Android桌面快捷方式的设置(一)
MainActivity如下: package cn.testshortcut; import java.util.List; import android.
719 0
Android SD卡创建文件和文件夹失败
原文:Android SD卡创建文件和文件夹失败 功能需要,尝试在本地sd卡上创建文件和文件夹的时候,报错,程序崩溃。 一般情况下,是忘记给予sd卡的读写权限。但是这里面权限已经给了,还是报错。 在网上搜索关于这方面的问题,发现有网友给出解答: 4.
1337 0
c# 纯代码方式创建快捷方式
原文:c# 纯代码方式创建快捷方式 using System; using System.Collections.Generic; using System.Text; using Microsoft.
596 0
在GitHub上删除项目后,在Android Studio上传项目依然提示project is already on github
描述: 在GitHub上面上传项目,但是感觉有些问题,就想删除了重新上传。 但是在Android Studio重新上传项目时,遇到了问题,一直提示“project is already on github”   解决方案: 1、关闭Android Studio项目;   2、进入到本地项目目录,找到隐藏文件夹.
1281 0
Android:随笔——新的 NDK/JNI 调用方式
转载请标明地址 QuincySx: http://www.jianshu.com/p/c6108131ba0f 众所周知现在 Android 开发已经到了 Android Studio 的时代,那么 JNI 的调用方式也经过了好几代 在eclipse 时代就存在的 ndk-build 方式 使用 Google 官方的 com.
1155 0
+关注
1635
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载