android 语音识别
16lz
2022-07-23
首先可以用以下代码测试你的机器是不是有语音识别功能:
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);} }
更多相关文章
- Android(安卓)热点开关状态的判断和获取热点ssid
- Android中判断网络功能是否可用
- Android的网络状态判断
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的La
- Android(安卓)startActivityForResult的使用
- Android(安卓)AOSP输入法(LatinIME)大写判断分析
- android 判断是否有可用网络
- Android(安卓)TextToSpeech语音播放文本
- Android判断当前的Activity