言语识别和执行行动

时间:2016-02-01 14:37:53

标签: android

我需要你的帮助 我正在开发一个语音识别应用程序,它执行诸如打电话,发送消息和熟悉的东西等动作。 我设法在我的应用程序中编程语音识别,它工作得很好,但我似乎无法理解如何执行这些操作,例如,如果我告诉应用程序“打电话迈克尔”,它是如何在编码中完成的?如何在代码中编写调用action \ sms动作? 我真的很感激任何帮助!

这是一段代码,描述了我如何通过语音识别获得单词动作:

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        //check speech recognition result 
        if (requestCode == VOICE_REC_CODE_REQUEST && resultCode == RESULT_OK) 
        {
            //store the returned word list as an ArrayList
            ArrayList<String> suggestedWords= data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
            startExecutingActions(suggestedWords);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

问题是,我如何执行这些动作\命令,如;调用,发送短信,搜索网页,导航等等,并在startExecutingActions(suggestedWords)函数中使用它们?

2 个答案:

答案 0 :(得分:2)

在给某人打电话的给定示例中,您需要通过电话操作启动新意图。 以下是common intents

的列表

我们假设您认识到用户想要拨打特定号码(通过在电话簿中查找姓名)。然后你可以拨打你的&#34; dialNumber&#34;用电话号码的方法。

public void dialNumber(String pNumber){

    Intent intent = new Intent(Intent.ACTION_PHONE);
    intent.setData(Uri.parse("tel:" + pNumber));
    if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
        startActivity(intent);
    };
}

您需要确保您的应用在AndroidManifest.xml中具有所有必需的权限。

答案 1 :(得分:1)

添加此代码:

sprintfc

如果您想获取联系电话号码,请使用this

如果您想致电,请使用this