管理员
|
楼主#
更多
发布于:2012-10-22 13:54
| | | | 首先可以用以下代码测试你的机器是不是有语音识别功能: [java] PackageManager pm = getPackageManager(); List<ResolveInfo> activities = pm.queryIntentActivities( new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0); if (activities.size() != 0) { /*Activity 存在*/ Toast.makeText(AndroidVoiceActivity.this, "Activity 存在", Toast.LENGTH_LONG).show(); } else { /* Activity Not Found 未判断会抛出ActivityNotFoundException*/ Toast.makeText(AndroidVoiceActivity.this, "Activity 不存在", Toast.LENGTH_LONG).show(); } 简单的Activity: [java] package com.relin.voice; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.speech.RecognizerIntent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class AndroidVoiceActivity extends Activity { /** Called when the activity is first created. */ private static final int VOICE_RECOGNITION_REQUEST_CODE = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub try{ Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音"); startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); }catch (Exception e) { // TODO: handle exception Toast.makeText(AndroidVoiceActivity.this, "ActivityNotFoundException", Toast.LENGTH_LONG).show(); } } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if (requestCode == VOICE_RECOGNITION_REQUEST_CODE ;; resultCode == RESULT_OK) { ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); String resultString = ""; for (int i = 0; i < result.size(); i++) { resultString += result.get(i); } Toast.makeText(this, resultString, Toast.LENGTH_LONG).show(); } super.onActivityResult(requestCode, resultCode, data); } }
| | | | |
|