Как отправить текстовый запрос в Google Assistant из приложения для Android

Я пытаюсь запустить Google Assistant и отправить текстовый вопрос (не голосовой) из моего приложения, когда я нажимаю кнопку. Например: я нажимаю кнопку, и Ассистент Google отвечает на мой вопрос «Какая сегодня погода?».

Это возможно?

РЕДАКТИРОВАТЬ: когда я нажимаю кнопку, я хочу, чтобы Google Ассистент выполнял некоторые действия и давал речевую обратную связь. Например: «Узнайте прогноз погоды на завтра и установите будильник на 6.30».


person Stefan    schedule 15.10.2018    source источник


Ответы (2)


Похоже, вы можете ссылаться на него по прямому имени класса пакета.

String queryString = "How is the weather today?";
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.setClassName("com.google.android.googlequicksearchbox", 
                    "com.google.android.googlequicksearchbox.SearchActivity");
intent.putExtra("query", queryString);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
person Jay Snayder    schedule 15.10.2018
comment
Я хочу, чтобы Google Assistant выполнял некоторые действия и давал речевую обратную связь, а не только для открытия приложения Google и поиска погоды. - person Stefan; 16.10.2018

Если вы уже используете Assistant SDK, это довольно просто. Просто замените AudioInConfig текстовым запросом. Вот как я это делаю:

AssistConfig config = AssistConfig.newBuilder()
    .setTextQuery("Your text query goes here!")
    //.setAudioInConfig(audioInConfig)
    .setAudioOutConfig(audioOutConfig)
    .setDeviceConfig(deviceConfig)
    .setDialogStateIn(dialogStateIn)
    .setScreenOutConfig(screenOutConfig)
    .build();
AssistRequest request = AssistRequest.newBuilder().setConfig(config).build();

Затем отправьте запрос на сервер через gRPC, и вы получите голосовой ответ.

person Greg Moens    schedule 09.11.2018
comment
Я никогда раньше не использовал Assistant SDK, и сейчас я пытаюсь использовать его в своем проекте Android, поэтому я не могу использовать этот код прямо сейчас. - person Stefan; 10.11.2018