5

I need to give users a method to launch their phone's voice assistant from my app, be it Google Now or anything else.

When searching on how to do this I keep finding explanations on how to get voice input while I just want to launch Google Now in "listening" mode. This question clearly asks for the same thing but the accepted answer explains how to open voice input:

How to programmatically initiate a Google Now voice search?

I know this can't be a rare case, how can it be done?

Community
  • 1
  • 1
lisovaccaro
  • 32,502
  • 98
  • 258
  • 410
  • The answer in linked question works perfectly fine. As far as I understand you want to do two things: 1) launch Google Now, and then 2) start speech recognizer. – ozbek Mar 28 '14 at 10:59

2 Answers2

5
startActivity(new Intent(Intent.ACTION_VOICE_COMMAND).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

worked for me and seems more intuitive.

Justin Harris
  • 1,969
  • 2
  • 23
  • 33
  • If i installed Svoice and Google voice and set Svoice as default app. The above code always call my Google voice. Why? – Jame Nov 09 '16 at 05:15
  • You probably have S Voice set as your default. You can change this in your settings somehow (sorry I don't know how). – Justin Harris Nov 09 '16 at 14:54
4

It is not very clear what exactly you are trying to achieve, but I hope following will be helpful.

The code given at How to programmatically initiate a Google Now voice search? will launch the default speech recognizer (or "voice assistant" as you have put it).

Following, however, will explicitly open (if available) Google's speech recognizer:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.google.android.googlequicksearchbox",
        "com.google.android.googlequicksearchbox.VoiceSearchActivity");
try {
    startActivity(intent);
} catch (ActivityNotFoundException anfe) {
    Log.d(TAG, "Google Voice Search is not found");
}  
Community
  • 1
  • 1
ozbek
  • 20,955
  • 5
  • 61
  • 84
  • I'm going to try it tonight. Is the voice assistant the same as the speech recognizer? I thought the speech recognizer only did speech to text translation whereas the voice assistant actually did stuff you asked to, e.g: "call my mom". So my question is basically, will this call my mom? – lisovaccaro Mar 31 '14 at 14:56
  • I did not test, but yes it should (given that Google's speech recognizer is available). – ozbek Mar 31 '14 at 16:01
  • The problem is, your application is minimized and after the user completes the search session, he will no longer be inside the app. The answer by @Justin doesn't minimize the app and thus is better. – Daniels Šatcs Aug 15 '16 at 23:33