На высоком уровне я хотел бы настроить действие, которое имеет некоторые обязательные входы и некоторые необязательные. После того, как пользователь начинает, ему / ей будет предложено ввести все необходимые данные, которые отсутствуют. Если / когда собраны необходимые входные данные, я хотел бы спросить, хочет ли пользователь указать дополнительные необязательные входные данные.
Конкретный вариант использования - это голосовой поиск недвижимости. У меня есть некоторые необходимые настройки, такие как почтовый индекс, цена и количество спален. Тогда я бы хотел, чтобы Биксби спросил: «Хотели бы вы уточнить поиск еще дальше?» и если пользователь говорит «да», мы можем спросить о количестве ванных комнат, обустройстве парковки и других более нишевых параметрах. Я не хочу делать все это обязательным и должен подсказать всем, хотят ли они фильтровать по «пулам» или некоторым параметрам, которые не используются широко. Будучи голосовым, я не хочу просто ставить его в качестве флажка на экране, потому что кто-то на динамике не сможет использовать этот параметр.
Я подумал о 2 потенциальных решениях, но я не знаю, будут ли они работать (по крайней мере, не полагаясь на элементы управления на экране для голосовой капсулы):
1) Выполните поиск в транзакции, а затем вместо обычного подтверждения попытайтесь вставить подтверждение, чтобы спросить, хочет ли пользователь добавить дополнительные уточнения. Может быть, что-то вроде банковского перевода, но отрицательное подтверждение заставит Биксби запросить информацию, которую она не просила раньше: https://bixbydevelopers.com/dev/docs/sample-capsules/walkthroughs/simple-transactional#sample-capsule-walkthrough
2) Сделайте еще 2 обязательных ввода, один логический с именем "WantsOptionalParameters", а другой с именем "OptionalParameters", который будет структурой, содержащей все необязательные параметры. Затем он будет запрашивать WantsOptionalParameters, как обычный требуемый вход, и, если это «True», у меня может быть вспомогательное действие, которое будет запрашивать каждый из параметров для создания объекта OptionalParameters. тогда мы могли бы передать этот вывод в поиск. И наоборот, если WantsOptionalParameters имеет значение false, мы можем автоматически создать OptionalParameters со всеми отрицательными ответами и передать их в исходное действие.
Оба эти решения потребуют еще больше исследований и испытаний, и я даже не знаю, сработают ли они, поэтому я надеялся, что вы, ребята, будете мудрыми!