2.3.5 Robot的处理流程
## 2.3.5 Robot的处理流程
* MainService的
~~~
public int onStartCommand(Intent intent, int flags, int startId)
~~~
* 接收到SEND_MSG或者SEND_VOICE_MSG后,提取Intent中的文本,或者从语音识别结果
onRecognizeResult(String)中获得输入文本,然后调用:
~~~
public void sendMessageToRobot(String text, int type)
~~~
* 方法处理文本输入,灵聚智能引擎(robot)处理完毕后,会回调
~~~
/**
* 灵聚智能引擎应答输出回调
* @param text 输出文本
* @param type 输入类型,0=文本输入,1=语音输入
*/
protected void onRobotResponse(String text,Command cmd,int type){…}
~~~
* 该方法会将robot返回的指令返回至方法中,开发者需在这些回调方法中解析并执行应答指令,指令说明详见3.6节(或者api的Command类说明),指令解析并执行完成后可通过EventBuspost到前端Activity,在Activity中可以这样接收:
~~~
public void onEventMainThread(RobotResponseEvent e){
if(TextUtils.isEmpty(e.getText()))return;
history.add(new Msg(e.getText(), Msg.OUTPUT_TYPE));
adater.notifyDataSetChanged();
recyclerView.scrollToPosition(history.size() - 1);
}
~~~
详见Demo中的MainCommonActivity;