小涛虚心学技术 2013-12-16 13:21 采纳率: 0%
浏览 3422

Android 语音识别— 怎么做到 先识别打电话,再识别电话号码?

由于刚学Android开发,
所以有些功能还是不知道怎么去实现。
我想按按钮实现语音输入,然后识别,
如果我说“打电话”,标志位signal为"打电话"。
然后再点识别按钮的时候,就读取我说的电话号码“tel_num”,
然后就直接把这个号码打出去了。
我是想实现这个功能,但是我不熟悉Android的执行方式,
到真机上就强制关闭,我一直没找到解决办法,
求前辈指点,谢了。

代码如下:
public void onClick(View v) {
if(v.getId()==R.id.btn)
{
/*启动手机内置的语言识别功能*/
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,REQUEST_CODE);
if(signal.equal("打电话")){call(tel_num);}
}
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     /* 回调获取从谷歌得到的数据*/
    if(requestCode==REQUEST_CODE&&resultCode==RESULT_OK)
    {
        List<String> list = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list)); //把数据显示在listview中
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            if(it.next().equals("打电话")){signal=new String("打电话");break;}
            if(it.next().equals("发短信")){signal=new String("发短信");break;}
        }
        tel_num=list.get(0);
    }
    super.onActivityResult(requestCode, resultCode, data);
}

public void  call(String num){
    Intent dia1 = new Intent();
    dia1.setAction("android.intent.action.CALL");
    dia1.setData(Uri.parse("tel://"+num));
    startActivity(dia1);
}
  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-27 15:58
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果