android创建任意快捷方式

刚好工作中用到这个功能,完成之余把代码片段贴出来大家看看,调用下面的方法就可以创建。

   private void makeShortcut() {
    	  String SHORTCUT_INSTALL = "com.android.launcher.action.INSTALL_SHORTCUT";
    	  String packageName = "com.android.Update"; //需要提供这个包名,请改成要添加应用的包名
    	  Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
    	  resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    	  resolveIntent.setPackage(packageName);
    	  List<ResolveInfo> apps = getPackageManager().queryIntentActivities(resolveIntent, PackageManager.GET_ACTIVITIES);
    	  if(apps.size() == 0) {
    	   Toast.makeText(this, "无法创建快捷方式", Toast.LENGTH_SHORT).show();
    	   return;
    	  }
    	  ResolveInfo ri = apps.get(0);
    	  if (ri != null) {
    	   Intent shortcut = new Intent(SHORTCUT_INSTALL);
    	   shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, ri.loadLabel(getPackageManager()));
    	   shortcut.putExtra("duplicate", false);// 不允许重复创建
    	   String className = ri.activityInfo.name;
    	   ComponentName cn = new ComponentName(packageName,className);
    	   shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(cn));
    	   // 显示的图标
    	   Drawable iconDrawable = ri.loadIcon(getPackageManager());
    	   BitmapDrawable iconBitmapDrawable = (BitmapDrawable) iconDrawable;
    	   Bitmap iconBitmap = iconBitmapDrawable.getBitmap();
    	   shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, iconBitmap);
    	   // 发送广播用以创建shortcut
    	   this.sendBroadcast(shortcut);
    	  }
    	 }

别忘了在AndroidManifest.xml中加上添加桌面快捷方式的权限

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值