20

I want to start a Google Now voice search when the user presses a button. However, I can't find the Intent to start the search in the docs.

Does anybody know how to start activity for Google Now voice Search?

Charles
  • 50,943
  • 13
  • 104
  • 142
patil215
  • 203
  • 1
  • 2
  • 6

3 Answers3

11

Call Activity for Voice Input:

/* Call Activity for Voice Input */
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");

try {
    startActivityForResult(intent, 1);
} catch (ActivityNotFoundException a) {
    Toast.makeText(context, "Oops! Your device doesn't support Speech to Text",Toast.LENGTH_SHORT).show();
}

Get Input from as String:

(I have used for set Text in Search View and Search for that Value)

/* When Mic activity close */
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
    case 1: {
        if (resultCode == Activity.RESULT_OK && null != data) {
            String yourResult = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS).get(0);
        }
        break;
    }
    }
}
Community
  • 1
  • 1
Pratik Butani
  • 60,504
  • 58
  • 273
  • 437
  • Can I use google voice command in Service? Means whenever user speaks something Can I detect even if phone is in locked mode? – Umang Kothari Jul 23 '15 at 11:57
10

Use ACTION_RECOGNIZE_SPEECH:

private static final int RECOGNIZER_REQ_CODE = 1234;

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
startActivityForResult(intent, RECOGNIZER_REQ_CODE);

Please note that you have to use startActivityForResult() as startActivity() is not supported. See the above linked docs for details.

ozbek
  • 20,955
  • 5
  • 61
  • 84
8

You need to start an Activity with only the Action set to android.intent.action.VOICE_ASSIST and the Google Now Speech recognizer pops up. Try this using the developer tools:

adb shell am start -a android.intent.action.VOICE_ASSIST
Pete
  • 57,112
  • 28
  • 117
  • 166
user3805309
  • 81
  • 1
  • 2
  • 3
    Based on this, here's the working code that I used: `Intent googleNowIntent = new Intent("android.intent.action.VOICE_ASSIST");` `startActivity(googleNowIntent);` – rob Oct 29 '15 at 15:24