我用真机测试,为什么还是报这个错。语音识别到底具体是要怎么去实现的?要不要注册部分代码如下: try {

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, SPEECHREQUEST);
                 
} catch (Exception e) {

Toast.makeText(MainActivity.this, "没有设备",Toast.LENGTH_LONG).show();
 

}Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

 if (SPEECHREQUEST == requestCode && resultCode == RESULT_OK) {
 
 Toast.makeText(MainActivity.this, "返回结果正常",Toast.LENGTH_LONG).show();
 
 ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);  //获取语言的字符
 
  String resultString="";
            //组成字符串
            for (int i=0;i<result.size();i++)
            {
                resultString +=result.get(i);
            }
            
            resTextView.setText(resultString);
 }
}求指点!!!!!!

解决方案 »

  1.   

    先确定打开的activity存在PackageManager pm = getPackageManager();
            List<ResolveInfo> activities = pm.queryIntentActivities(
                    new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
            if (activities.size() != 0) {
                /*Activity  存在*/
            } else {
                /*  Activity  Not  Found   未判断会抛出ActivityNotFoundException*/
            }
      

  2.   

    我可以看到机子里面有语音拨号器这个应用!但是测试后,是没有这个activity,怎么回事呢,这个还需要注册?不理解
      

  3.   

    有些机器内存比较小,出厂得时候厂家没有移植TTS语音引擎。得自己安装TTS。