Paso 13: Crear su Windows Phone App parte 4: codificación Cortana - lógica
Lógica de Cortana
Ahora que Cortana puede escuchar , que le necesitamos para entender . Esta parte de la guía entra en el 'backend' de Cortana y le emparejamiento con la lógica de nuestra aplicación. Queremos que le programa para que cuando ella oye a uno de estos comandos, envía un mensaje a nuestro Azure Service Bus y enciende o apaga las luces.
Instalación de los comandos de voz
No se olvide! Este es un problema que muchas personas tienen cuando utilice por primera vez Cortana, simplemente porque es fácilmente pasado por alto. Vamos a hacerlo enseguida para asegurarse de que se hace y encima con.
Poner el siguiente código en el documento de MainPage.xaml.cs .
Importar en primer lugar, las llamadas de referencia correcto en la parte superior de su archivo:
Entonces el código para instalar nuestra voz comandos pueden escribirse como una función así:
¿No estás familiarizado con Async y aguarda? Leer la documentación MSDN aquí.
Ahora que tenemos nuestra función, asegurémonos de que llamarlo! Un buen lugar para ponerlo es en la función OnNavigatedTo .
Debido a que nuestra instalación es una tarea asincrónica, tendremos que activar la función de OnNavigateTo en una función de async por simple añadiendo el siguiente código:
Entonces simplemente comprobamos que esta es la primera vez que la página ha sido navegar e instalar nuestros comandos de voz:
¡ Excelente! Ahora los comandos de voz instalación tan pronto como Abra la aplicación por primera vez!
Lógica de comando de voz
Ahora, vamos a utilizar qué comando el habla del usuario para averiguar qué comando para enviar a nuestros Azure Service Bus. Abra el archivo App.xaml.cs y desplácese hasta justo debajo de la función RootFrame_FirstNavigated . Ponemos la siguiente función en allí:
Esta función es llamada cada vez que alguien utiliza nuestro prefijo de comando (BACH) cuando Cortana una instrucción. Aunque pueda parecer un poco confuso al principio, la parte muy importante son las siguientes líneas de código:
Utilizamos un interruptor declaración para saltar a través de los diferentes comandos en nuestro documento SSML. Lo que estamos comprobando es la cadena de coincidir con el nombre de comando de nuestros bloques de comandos en el documento ssml. Una vez que sabemos lo que hemos recibido del comando, entonces podemos actuar en consecuencia disparar a nuestro SendSBMessage que envía un mensaje a nuestro Azure Service Bus. 'Off"envíe un ' 0 'y"En"enviamos un 1'.
¿El código no funciona 100%? No te preocupes, yo he conectado un MainPage.xaml.cs y el App.xaml.cs que debería dar más claridad al seguir a lo largo.