調用谷歌语音识别其实很简单,直接利用 intent 跳转到手机里面的谷歌搜索

代码也很简单,直接调用方法 startVoiceRecognitionActivity()

如果大家手机里面没有谷歌搜索,这里会弹出一个下载框给我们选择下载

识别完成后,得到result List数组,里面有很多识别结果,我们获取第一个就可以了

贴出代码:

[java]  view plain copy
  1. /** 
  2.  * 調用方法 
  3.  */  
  4. private void startVoiceRecognitionActivity() {  
  5.     try {  
  6.         // 通过Intent传递语音识别的模式,开启语音  
  7.         Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);  
  8.         // 语言模式和自由模式的语音识别  
  9.         intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,  
  10.                 RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);  
  11.         // 提示语音开始  
  12.         intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "开始语音");  
  13.         intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh-HK");  
  14.         // 开始语音识别  
  15.         startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);  
  16.     } catch (Exception e) {  
  17.         e.printStackTrace();  
  18.         showDialog();  
  19.     }  
  20. }  
  21.   
  22. private void showDialog() {  
  23.     AlertDialog.Builder builder = new Builder(MainActivity.this);  
  24.     builder.setMessage(R.string.dialog_content);  
  25.     builder.setTitle(R.string.dialog_title);  
  26.     builder.setNegativeButton(R.string.download,  
  27.             new android.content.DialogInterface.OnClickListener() {  
  28.                 @Override  
  29.                 public void onClick(DialogInterface dialog, int which) {  
  30.                     dialog.dismiss();  
  31.                     Uri uri = Uri.parse(getApplication().getString(R.string.voice_url));  
  32.                     Intent it = new Intent(Intent.ACTION_VIEW, uri);  
  33.                     startActivity(it);  
  34.                 }  
  35.             });  
  36.     builder.setPositiveButton(R.string.cancel,  
  37.             new android.content.DialogInterface.OnClickListener() {  
  38.                 @Override  
  39.                 public void onClick(DialogInterface dialog, int which) {  
  40.                     dialog.dismiss();  
  41.                 }  
  42.             });  
  43.     builder.create().show();  
  44. }  
  45.   
  46. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  47.     if (requestCode == VOICE_RECOGNITION_REQUEST_CODE  
  48.             && resultCode == RESULT_OK) {  
  49.         ArrayList results = data  
  50.                 .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);  
  51.   
  52.         if (results.size() > 0) {  
  53.             voiceView.setText(results.get(0));  
  54.         } else {  
  55.             Utils.getInstance().showTextToast("檢測失敗,請重新點擊識別!", context);  
  56.         }  
  57.     }  
  58. }  


[html]  view plain copy
  1. <string name="voice_url">https://play.google.com/store/apps/details?id=com.google.android.voicesearchstring>  
  2. <string name="dialog_title">提示string>  
  3. <string name="dialog_content">未找到語音識別設備,是否下載?string>  
  4. <string name="cancel">取消string>  
  5. <string name="download">下載string>  

更多相关文章

  1. Android动态加载技术 系列索引
  2. android之设计模式六大原则
  3. Android(安卓)工厂模式
  4. Android中的task作用和Activity启动模式以及各种启动Flag的含义
  5. Android(安卓)SDK安装无法识别jdk(JAVA_HOME)的核心原因【尼玛一
  6. Android(安卓)MVP设计模式登录具体实现Material Design风格
  7. android/ophone中本机号码的获取
  8. android日期格式
  9. Android(安卓)人脸识别 MTCNN Kotlin实现

随机推荐

  1. Android(安卓)EditText设置Filter以后,xml
  2. Android反射机制实现与原理
  3. android怎么用APK调用JNI简单实例
  4. Android用Ant管理项目
  5. android DDMS 连接真机(己ROOT),用file exp
  6. Android之Searchable
  7. SQLCipher加解密Android(安卓)sqlite
  8. Android创建快捷方式
  9. fastlane实现Android自动化打包
  10. bitmap设置图片尺寸缩小,避免内存溢出/Out