首先可以用以下代码测试你的机器是不是有语音识别功能:

        PackageManager pm = getPackageManager();        List 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:

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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubtry{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 exceptionToast.makeText(AndroidVoiceActivity.this, "ActivityNotFoundException", Toast.LENGTH_LONG).show();}}});    }@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubif (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {ArrayList 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);}        }


更多相关文章

  1. Android(安卓)热点开关状态的判断和获取热点ssid
  2. Android中判断网络功能是否可用
  3. Android的网络状态判断
  4. android 当系统存在多个Launcher时,如何设置开机自动进入默认的La
  5. Android(安卓)startActivityForResult的使用
  6. Android(安卓)AOSP输入法(LatinIME)大写判断分析
  7. android 判断是否有可用网络
  8. Android(安卓)TextToSpeech语音播放文本
  9. Android判断当前的Activity

随机推荐

  1. 关于Android中Spinner的使用
  2. Android(安卓)基于Netty的消息推送方案之
  3. android 手机应用设备管理激活状态,获取激
  4. 模仿微信界面tabhost底部导航——使用继
  5. xbmc遥控音量加处理过程总结
  6. Android连接指定Wifi的Demo
  7. android非法字符的判定、表情符号的判定
  8. 关于Android权限的一些文章
  9. 【Android】手动显示和隐藏软键盘
  10. Android五子棋游戏设计与实现