2017-08-28 6 views
2

私はAPI.AIを使用しています。音声アシスタントを使用してアラームを設定しています。また、「アラームを設定」というインテントを作成し、そのうちの1つは、 '明日の時刻にアラームを設定する'であり、「時間」は@sys.timeエンティティと定義され、「明日」は@sys.dateエンティティと定義される。「明日」は@ sys.dateエンティティとして定義されています。

@sys.timeは時間をかなり適切に設定していますが、@sys.dateは '2017-08-29'のような日付の正しい値を表示していますが、明日のアラームを設定できません。

例えば、「明日午後2時にアラームを設定する」と言っているとき、明日ではなく今日2時にアラームを設定しています。

ここでは、コードのビットです:

if (entry.getValue().getAsJsonArray().size() != 0) { 
    createAlarm("", Integer.valueOf(entry.getValue().toString().substring(2, 4)), Integer.valueOf(entry.getValue().toString().substring(5, 7))); 
    hResponse.setText("Alarm set successfully!"); 
    tts.speak("Alarm set successfully!", TextToSpeech.QUEUE_ADD, null); 
} else { 
    Toast.makeText(getBaseContext(), "no time parameter", Toast.LENGTH_SHORT).show(); 
} 

どのように私は、私は明日のためにそれを設定すると言ったときに明日のためのアラームを設定している所望の結果を達成することができますか?

答えて

1

API.AIは、@ sys.dateおよび@ sys.timeパラメータをISO-8601文字列として送信します。 API.AIの日付と時刻の文字列をどのように解析しているのかを確認し、日付解析で間違いを避けるために、選択したプラットフォームのdatetimeライブラリを使用することをおすすめします。 (time and date entity docs

ウェブフックが常に送信されるようにするには、両方とも時間と日付を両方とも送信したい場合は、両方ともrequired parametersにします。必要なパラメータごとにプロンプ​​トを設定するようにしてください(つまり、「何時にアラームを設定しますか?」)

+0

ここではっきりさせたいのですが、私はCommon Intents:https:// developerを使用しています。 .android.com/guide/components/intents-common.html#アラームを作成するアラームを作成します。私のコードはリンクと同じです。ユーザーが「明日午後5時30分にアラームを設定する」と言うと、API.AIは明日の午後5時30分にアラームを設定することができますか、それとも午後5時30分に設定しますか?私はあなたに私の質問があることを願っています –

+0

AndroidインテントとAPI.AIインテントは完全に別々のコンストラクトです。混乱させて申し訳ありません。 API.AIの意図の定義:https://api.ai/docs/intents – matthewayne

+0

AndroidとAPI.AIのインテントが異なることを理解しています。私はちょうど上記の質問を明確にしたい。それに答えてください。 –

関連する問題