如何使用 actions.intent.OPEN_APP_FEATURE 设置助手快捷方式建议?

问题描述

所以我只是想知道为什么我的代码不起作用。我如何为 AppShorcutIntent 提供具有操作和数据之类的特定意图?

这是我目前的代码

            val appShortcutIntent = AppShortcutIntent.builder()
                .setIntentName("actions.intent.OPEN_APP_FEATURE")
                .setPackageName("com.app.name")
                .setIntentParamName("feature")
                .setIntentParamValue("")
                .build()
            shortcutsClient.lookupShortcut(appShortcutIntent)
                .addOnSuccessListener { shortcutLookupResult ->
                    if (shortcutLookupResult.isShortcutPresent) {
                        shortcutsClient.createShortcutSettingsIntent().addOnSuccessListener { intent ->
                            requireActivity().startActivity(intent)
                        }
                        return@addOnSuccessListener
                    }
                    val signalShortcut = AppShortcutSuggestion.builder()
                        .setAppShortcutIntent(appShortcutIntent)
                        .setCommand("feature on")
                        .build()
                    shortcutsClient.createShortcutSuggestionIntent(signalShortcut).addOnSuccessListener { intent ->
                        requireActivity().startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
                    }
                }

我尝试了很多不同的东西,但似乎没有一个想要按照我想要的方式工作。我知道这个问题没有任何具体的参数值,但无论我设置什么参数值,当我使用快捷方式时,它仍然没有被识别为一个独特的意图。

解决方法

应用内促销库 API 不处理 Android 意图。它处理助手的 built-in intents,这是完全不同的东西(即使它们都被称为“意图”)。在您复制的示例中,它指的是名为 OPEN_APP_FEATURE 的 BII。

通过使用此 API,您是在告诉 Google 助理如何创建快捷方式,以使用已配置为处理的 BII 启动应用程序。这个 BII 很重要,因为它具有识别与之相关的自然语言查询的能力。 Android Intent 没有这种上下文。