android 语音搜索动画,Android语音搜索

本文介绍了如何在Android系统中利用Intent调用内置的语音识别功能,通过发送'ACTION_RECOGNIZE_SPEECH' Intent启动语音识别。同时,提供了在用户设备未安装相关软件时的异常处理方法,包括异常捕获提示和检查语音识别软件是否已安装。在获取到语音输入结果后,通过onActivityResult()进行处理,并展示了如何展示输入结果的示例代码。
摘要由CSDN通过智能技术生成

Android系统已经为我们提供了通过intent的方式来启动,在代码中只发出一个”android.speech.action.RECOGNIZE_SPEECH”的intent,就可以调用到系统中已经安装好的语音识别软件.我们只要获取返回值并显示即可.调用代码如下:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

intent.putExtra(RecognizerIntent.EXTRA_PROMPT, getString(R.string.hint_code));

startActivityForResult(intent, REQUEST_CODE_RECOGNITION_REQUEST);

当然,如果用户的机子没有安装相关的软件,就会报错,所以我们还需要做如下的处理之一.

1.为上面的代码段添加异常捕获并提示;

2.在调用之前判断下时候用户的机子已经安装了相关的软件,没有则把语音输入的按钮隐藏或者不可操作,判断的代码如下:

public static boolean isApkInstalled(String strIntent){

PackageManager packageManager = context.getPackageManager();

List activities = packageManager.queryIntentActivities(new Intent(strIntent), 0);

return activities != null && !activities.isEmpty();

}

在调用之后在onActivityResult()里添加对语音输入返回的值的过滤.例如在intent中就存在结果集data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);下面示例就是显示输入结果让用户选择正确的输入值,这里是弹出对话框的方式.

if(requestCode == REQUEST_CODE_RECOGNITION_REQUEST && resultCode == RESULT_OK) {

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

if(results!=null && !results.isEmpty()){

int size=results.size();

audioArray=new String[size];

results.toArray(audioArray);

for(int i=0; i

String str=results.get(i);

if(str!=null){

str.replaceAll(" ", "");

str.replaceAll(" ", "");

}

audioArray[i]=str;

}

showDialog(DIALOG_AUDIO);

}else{

Toast.makeText(this, R.string.hite_audio, Toast.LENGTH_SHORT).show();

}

}

20130313114503820.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值