Невозможно получить точный текст, используемый в действии, с помощью голосового поиска Google Now. - PullRequest
0 голосов
/ 09 ноября 2018

Я интегрирую голосовой поиск Google Now в одно из моих приложений для Android. Там я начинаю помощь Google, говоря: «О'кей, Google», и я буду слушать мою команду. Затем помощь сопоставит произносимый текст с действием, используя действие:

com.google.android.gms.actions.SEARCH_ACTION

Фрагмент из моего AndroidManifest:

 <activity android:name=".activities.GActivity"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

Затем в своей деятельности я проверяю действие и текст, произнесенный пользователем. Как это:

 import com.google.android.gms.actions.SearchIntents;

 public class GActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_g);

    // Get the intent
    Intent intent = getIntent();
    if (SearchIntents.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        Toast.makeText(this,
                query, Toast.LENGTH_SHORT).show();
    }

}
}

Затем из моего терминала я запустил действие намерения с образцом текста, который должен быть произнесен (в среде разработчиков, поскольку голосовая помощь будет работать только после освобождения), с помощью следующей команды.

 adb shell am start -a com.google.android.gms.actions.SEARCH_ACTION \
 --e query "TextToBeSpoken" my.package.name

Я перехожу по этой ссылке с Android

Поддержка поисковых запросов из Google Voice Actions

Использование голосового поиска для интеграции с Google Now

Проблема в том, что после того, как я дал команду из терминала, моя деятельность была успешно запущена, но я не могу получить устный текст от объекта намерения, который всегда равен нулю.

 String query = intent.getStringExtra(SearchManager.QUERY);

Может кто-нибудь сказать мне, почему приведенная выше строка возвращает ноль? Любой обходной путь для этого?

...