RecognizerIntent语音识别报错ActivityNotFound

使用Android源生的语音服务时,要使用到RecognizerIntent这个类,它实现从音频流到远程服务器来执行语音识别,下面是执

行是的主要代码:

 

 

     
           
           //*开始语音
            Button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 try {
            //通过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, "开始语音");
            //开始语音识别
            startActivityForResult(intent, 1234);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
            Log.i("123", "recoder: " + e.toString());
            Toast.makeText(getApplicationContext(), "找不到语音设备", Toast.LENGTH_SHORT).show();
        }
            }
        });
     
     //*处理接收到的结果
         @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (resultCode) {
            case 1:
                if (resultCode == RESULT_OK && data != null && requestCode == 1234) {
                    ArrayList result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                    
                     Log.i("123", "result: " + result.get(0));
                }
                break;
            default:
                Toast.makeText(PracticeActivity.this, "接收出错", Toast.LENGTH_SHORT).show();
        }

    }
      result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                    
                     Log.i("123", "result: " + result.get(0));
                }
                break;
            default:
                Toast.makeText(PracticeActivity.this, "接收出错", Toast.LENGTH_SHORT).show();
        }

    }
     

 

 

   具体的东西就不写了,网上搜 RecognizerIntent 能搜一大堆,但是在手机(非模拟器)上运行时,总是会抛出ActivityNotFound异常。很多人写了怎么去使用它,但是没有说明为什么会出现这个问题,然后各种搜,又各种找不到结果。

 

   后来找到了一个原因(不知道是不是都是这个原因导致的),就是没有 action=RecognizerIntent.ACTION_RECOGNIZE_SPEEC的Activity,所以才会报错,RecognizerIntent.ACTION_RECOGNIZE_SPEEC是在 voicesearch.apk 里的,一般的手机中可能会没有这个apk。解决的办法就是在默写平台上下载并安装这个软件就可以啦,赶紧试试看吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值