* 該功能模塊主要包含提醒、鬧鐘、備忘、記賬四個功能,這四個功能都擁有新建、刪除、撤銷、修改、查詢、播報操作,其對應的處理器是AssistProcessor和AssistPresenter。
* 開發者可以根據robot應答內容中的動作id區分是哪個功能,然后通過action指令確定是什么操作。
以鬧鐘為例:
~~~
輸入:中午12點半叫我起床
輸出:
{
"actions": [
{
"action": "CREATE",
"target": {
"created": 1499221259243,
"frequency": 0,
"id": 309,
"item": "鬧鐘",
"recyle": 0,
"remindTime": 1499229000200,
"scheduler": [
{
"interval": 0,
"when": 1499229000200
}
],
"sid": "595c4d0bb2765b718de3cfb9",
"terminalId": "df28f1f276ba5baa9d51d8d066bb61c1",
"timestamp": 1499221259243,
"valid": 1
}
}
],
"motions": [
...
],
"outc": "0",
"rtext": "好的,中午12點半叫您",
"synthetise": "",
"ttext": "刪除這個鬧鐘/改為下午3點/將工作日改為周末/念一下/關閉這個鬧鐘"
}
語義解釋:新建(action指令:CREATE)一個時間是12:30(when=1499229000200)且僅一次(interval=0)的鬧鐘(動作id=309)。
~~~
* 頁面效果圖:
--
* 特別的,新建備忘時,需要將語音識別切換到無限時識別模式,進行長時間的備忘內容錄入。并且在取消或完成備忘創建時,需要切換回訊飛正常識別模式,保證后續對話正常。AssistPresenter中設置識別模式的方法如下:
~~~
/**
* 參數設置參照第3.2節-語音識別模塊
*/
public void switchRecordMode(boolean mode, int long_record_mode)
~~~
* 數據同步說明,在本功能模塊主要是進行某個功能數據的增刪改查操作。如果是對話發起,則是robot服務器端先進行數據的更新,然后再回復客戶端,此時客戶端只需顯示視圖并更新數據,不需要同步;而如果是通過視圖手動觸發操作,則是本地客戶端先進行數據的更新,此時服務器端尚未得知數據已更新,所以需要同步上傳,通知服務器端更新數據(具體同步上傳操作見第 3.1 節-數據同步更新上傳操作)。