Запустите Google Action из приложения Android - PullRequest
1 голос
/ 06 марта 2020

Я уже несколько дней пытаюсь открыть помощника Google одной кнопкой (готово) и отправляю запрос на открытие моего действия Google (не выполнено). Это кажется невозможным до сих пор. Любая помощь? Кстати, я использую Xamarin, но ответы android также приветствуются.

        Intent intent = new Intent(Intent.ActionVoiceCommand);

        String queryString = "Talk to my google action";
        intent.SetClassName("com.google.android.googlequicksearchbox",
                            "com.google.android.googlequicksearchbox.SearchActivity");
        intent.PutExtra("query", queryString);
        intent.SetFlags(ActivityFlags.NewTask);

        StartActivity(intent);

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Для этого вам не нужно отправлять текстовый запрос для поиска. Вместо этого в консоли действий вы увидите Ссылки на действия .

. Для данного действия вы увидите раздел Ссылки . Когда вы включите его, вам будет предоставлен фрагмент кода HTML, который вы можете использовать на веб-сайте или даже в приложении Android.

https://assistant.google.com/services/invoke/uid/<action-id>?hl=en

Вы можете использовать это URL в вашем Android приложении, открыв его. Это заставит помощника захватить URL и открыть ваше действие.

String url = "https://assistant.google.com/services/invoke/uid/<action-id>?hl=en";
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);

enter image description here

0 голосов
/ 06 марта 2020

Хотите ли вы добиться результата, подобного следующему GIF? enter image description here

Я изменяю Intent.ActionVoiceCommand на Intent.ActionWebSearch

Вот мой код.

  private void Button1_Click(object sender, System.EventArgs e)
    {


        Intent intent = new Intent(Intent.ActionWebSearch);
        intent.AddCategory(Intent.CategoryDefault);
        string queryString = "Talk to my google action";
        intent.SetClassName("com.google.android.googlequicksearchbox",
                            "com.google.android.googlequicksearchbox.SearchActivity");
        intent.PutExtra("query", queryString);
        intent.SetFlags(ActivityFlags.NewTask);

        StartActivity(intent);

    }
...