App快捷方式的创建

本文介绍了在Android中如何通过代码实现创建应用快捷图标。主要包含两个步骤:首先,在AndroidManifest.xml中添加必要的权限;其次,在Activity的onCreate()方法中调用createShortCut()方法,该方法使用Intent创建快捷方式并设置名称、图标及点击行为。当点击快捷图标时,通过Intent.ACTION_MAIN和Intent.CATEGORY_LAUNCHER确保不会重复打开Activity。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用创建快捷图标有两种方式,

一种是直接代码实现创建快捷图标(桌面直接生成);一种是长按桌面,在弹出的快捷菜单中生成

这里介绍代码实现 创建快捷图标 两个步骤

(1)  在AndroidManifest.xml 申请权限

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


(2) 启动Activity 中

      @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);


createShortCut();

Log.d(tag, "ActivityA onCreate " + this);
}

public void createShortCut()
{
// 创建快捷方式的Intent
Intent shortcutintent = new Intent(
"com.android.launcher.action.INSTALL_SHORTCUT");
// 不允许重复创建
shortcutintent.putExtra("duplicate", false);
// 需要现实的名称
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getString(R.string.app_name));
// 快捷图片
Parcelable icon = Intent.ShortcutIconResource.fromContext(
getApplicationContext(), R.drawable.ic_launcher);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

Intent mainIntent = new Intent(Intent.ACTION_MAIN);  
       mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
       mainIntent.setClass(this, this.getClass());  
       
// 点击快捷图片,运行的程序主入口
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mainIntent);
// 发送广播。OK
sendBroadcast(shortcutintent);
}


注意如上:mainIntent  设置Intent.ACTION_MAIN 和 addCategory(Intent.CATEGORY_LAUNCHER)不能少,

             否则 每次点击 生成的快捷 图标  ,假如已经打开了应用 ,则会多次打开启动Activity

参考文章: 

http://blog.youkuaiyun.com/jdsjlzx/article/details/21631747

http://blog.youkuaiyun.com/maylian7700/article/details/6801451

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值