Android中主要通过RecognizerIntent来实现语音识别,其实代码比较简单,但是如果找不到设置,就会抛出异常ActivityNotFoundException,所以我们需要捕捉这个异常。而且语音识别在模拟器上是无法测试的,因为语音识别是访问google云端数据,所以如果手机的网络没有开启,就无法实现识别声音的!一定要开启手机的网络,如果手机不存在语音识别功能的话,也是无法启用识别!
下面是RecognizerIntentActivity中的代码:
public class IconTestActivity extends Activity implements OnClickListener {
private static final int VOICE_RECOGNITION_REQUEST_CODE=1234;
private Button btn;
private ListView list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn= (Button)findViewById(R.id.btn);
list=(ListView) findViewById(R.id.list);
btn.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId()){
case R.id.btn:
try {
//用Intent来传递语音识别的模式,并且开启语音模式