如何在Android上使用语音search和VoiceRecognition?

我想在我的应用程序中使用VoiceRecognition,但此应用程序需要安装语音search。

我不希望用户必须安装另一个其他应用程序,然后返回到我的应用程序来运行它。 我想从我的应用程序安装语音search,或者我想找一个关于如何将语音searchfunction添加到我的应用程序的教程。

我能做什么?

Solutions Collecting From Web of "如何在Android上使用语音search和VoiceRecognition?"

使用RecognizerIntent触发设备上安装的语音识别器

看到这个链接: 如何使用识别器的意图

这可以通过几个简单的步骤完成:

  1. 在您的活动中创build某种button,并将下面的代码放置在其OnClickListener中:

    //在你的activity中定义MY_REQUEST_CODE为一个int常量…我在10000s startVoiceRecognitionActivity(MY_REQUEST_CODE,“说点什么”)中使用整数。

  2. 覆盖活动中的onActivityResult()方法。 在实现中,当requestCode参数匹配您的MY_REQUEST_CODE常量时,放置一个开关块或if语句来运行一些逻辑。 类似于下面的逻辑将会得到语音识别活动认为它听到的结果列表:

    ArrayList keywordMatches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

  3. 您可以从识别器中获得0个或多个匹配。 一定要处理所有情况。

  4. 在某些情况下,语音识别器甚至可能不在设备上。 尝试处理您调用startVoiceRecognitionActivity()的地方。

Android开源语音识别示例

这是一个简单的方法来处理语音search

第1步button单击调用此方法

public void startVoiceRecognition() { Intent intent = new Intent("android.speech.action.RECOGNIZE_SPEECH"); intent.putExtra("android.speech.extra.LANGUAGE_MODEL", "free_form"); intent.putExtra("android.speech.extra.PROMPT", "Speak Now"); this.mContainerActivity.startActivityForResult(intent, 3012); } 

步骤2覆盖onActivityResult方法

 @ Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 3012 && resultCode == RESULT_OK) { ArrayList < String > matches = data.getStringArrayListExtra("android.speech.extra.RESULTS"); String result= matches.get(0); //Consume result edittext.setText(result); } } 

那是所有,完成