Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to programmatically initiate a Google Now voice search?

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?

like image 715
patil215 Avatar asked Aug 05 '13 00:08

patil215


3 Answers

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;
    }
    }
}
like image 176
Pratik Butani Avatar answered Oct 21 '22 19:10

Pratik Butani


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.

like image 10
ozbek Avatar answered Oct 21 '22 19:10

ozbek


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
like image 8
user3805309 Avatar answered Oct 21 '22 19:10

user3805309