Cortanaからアプリをフォアグラウンド起動する – VoiceCommandDefinitionManager

Cortanaからアプリの操作

UWPではCortanaに事前に音声コマンド定義ファイル(VoiceCommandDefinition)を登録しておくことによってCortanaに特定の言葉を発話させたときにアプリを起動させることができます。

CortanaからUWP起動はフォアグラウンド起動とバックグラウンド起動の2つのパターンがありますが今回はフォアグラウンド起動のパターンです。

VoiceCommandDefinitionファイルを作る

VoiceCommandDefinitionファイルはここ

https://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/dn706593.aspx

の定義に従って作ります。

  • CommandSet – 言語(ja-JP)単位で作ります。多言語対応する場合は複数作成
  • CommandPrefix – 認識したい言葉の前に必ずつけます
  • Example – 発話例
  • Command – 認識したいコマンドを定義。複数定義可
  • Example – 発話例
  • ListenFor – 認識したいコマンドを書きます。[]であってもなくてもよい、{}はPhraseListの中から選択することになります
  • Feedback – 認識完了したときCortanaに言わせる言葉
  • Navigate – アプリをフォアグラウンド起動します。

 

この場合

  • サンプル ウインドウ起動 1
  • サンプル ウインドウ 2

などの言葉を認識します。

このファイルをxmlファイルとしてプロジェクトに追加しておきます。

今回はVcdFilesというフォルダの下に作りました。

VoiceCommandDefinitionファイルの登録

先ほど作ったVCDファイルをCortanaに登録します。

 

認識時のフォアグラウンド起動

VCDファイルにNavigateタグを入れていた場合、コマンドを認識したときにアプリが起動し、AppクラスのActivateメソッドが呼ばれます。

そこで認識結果を取得し、ウインドウを起動することでCortanaからアプリをフォアグラウンド起動できます。