weixin_45057841
山海*
采纳率100%
2021-03-04 15:49

AndroidAPP为桌面创建快捷方式不能用了吗

已采纳
Intent addShortIntent = new Intent(ACTION_ADD_SHORTCUT);
addShortIntent.putExtra("1111",false);//不能重复创建
addShortIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,"测试");
addShortIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(MainActivity.this,R.mipmap.camera));
Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
launcherIntent.setClass(MainActivity.this,MainActivity.class);
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
addShortIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,launcherIntent);
sendBroadcast(addShortIntent);

用了以下代码创建方式没反应,有没有前辈可以指导下

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qq_42069597 立青_ 1月前
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        ShortcutManager shortcutManager = (ShortcutManager) getSystemService(Context.SHORTCUT_SERVICE);
        if (shortcutManager == null) {
            return;
        }
        if (shortcutManager.isRequestPinShortcutSupported()) {
            Intent shortcutInfoIntent = new Intent(context, HomeActivity.class);
            shortcutInfoIntent.setAction(Intent.ACTION_VIEW);
            shortcutInfoIntent.setData([data]);
            ShortcutInfo info = new ShortcutInfo.Builder(context, [id])
                    .setIcon(Icon.createWithResource(context, [图标资源id]))
                    .setShortLabel([名字])
                    .setIntent(shortcutInfoIntent)
                    .build();
            PendingIntent shortcutCallbackIntent = PendingIntent.getBroadcast(context, 0, shortcutInfoIntent, PendingIntent.FLAG_UPDATE_CURRENT);
            shortcutManager.requestPinShortcut(info, shortcutCallbackIntent.getIntentSender());
        }
    
    } 
    点赞 评论 复制链接分享