2011-04-01 68 views
8

我想在我的应用程序中使用VoiceRecognition,但此应用程序需要安装语音搜索。如何在Android上使用语音搜索和VoiceRecognition?

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

我该怎么办?

+0

也请参见http://计算器。COM /问题/ 5575141 /语音识别服务功能于安卓 – 2011-04-18 17:33:39

回答

0

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

  1. 创建您的活动某种按钮,然后将下面的代码在其OnClickListener:

    //定义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()的地方。

0

这里是处理语音搜索

一个简单方法步骤1 Call thi在按钮S方法点击

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); 
    } 
} 

这就是所有,DONE