Stap 13: Het maken van uw Windows Phone App deel 4: codering Cortana - logica
Cortana van logica
Nu dat Cortana kan horen u, we moeten haar begrijpen u. Dit deel van de gids gaat in de 'backend' van Cortana en haar in paren rangschikken met onze app logica. Wij willen haar programmeren zodat wanneer ze hoort dat een van deze opdrachten, ze een bericht naar onze Azure Service Bus stuurt en schakelt u in of uitschakelen van de lichten.
Installeren van de spraakopdrachten
Vergeet niet! Dit is een probleem dat een heleboel mensen hebben bij het eerste gebruik Cortana, simpelweg omdat het gemakkelijk over het hoofd gezien. Laten we het meteen om ervoor te zorgen dat het wordt gedaan en ouder met.
Plaats de volgende code in uw document MainPage.xaml.cs .
Eerst importeert u de juiste verwijzing oproepen bij de bovenkant van uw dossier:
Vervolgens de code te installeren onze stem opdrachten kunnen worden geschreven als een functie als volgt:
Niet vertrouwd zijn met asynchrone en wacht op? Op de MSDN-documenten lezen hier.
Nu dat we onze functie hebben, laten we ervoor om het te noemen! Een goede plek om het te zetten is binnen de OnNavigatedTo functie.
Omdat onze installeren een asynchrone taak is, zullen we moeten de functie OnNavigateTo omzetten in een async functie door het eenvoudig toevoegen de volgende code:
We controleren vervolgens alleen dat dit de eerste keer dat de pagina heeft geweest navigeert, doorzocht is op en installeren onze spraakopdrachten:
Geweldig! Onze spraakopdrachten zal nu zo snel zo open app installeert voor de eerste keer!
Stem opdracht logica
Nu, zullen we gebruiken welke opdracht de gebruiker voert het woord om erachter te komen welke opdracht u moet verzenden onze Azure Service Bus. Open uw App.xaml.cs bestand en ga net onder de RootFrame_FirstNavigated functie. Onder daar zullen we de volgende functie:
Deze functie wordt aangeroepen telkens wanneer iemand onze opdracht Prefix (j.s. BACH hanteert) Cortana een instructie geven. Hoewel het misschien lijkt een beetje verwarrend op het eerste, het echte belangrijke deel zijn de volgende coderegels:
We gebruiken een instructie switch om door de verschillende opdrachten in ons document van SSML te springen. Wat we controleren is voor de tekenreeks aan die overeenkomen met de naam van onze opdracht van onze opdracht blokken in de ssml doc. Zodra we wat commando dat we hebben ontvangen weten, kunnen dan wij dienovereenkomstig door het afvuren van onze SendSBMessage , die een signaal naar onze Azure Service Bus. Voor "Uit" wij sturen een "0"en "Op" zenden wij een ' 1'.
Code werkt niet 100%? Maak je geen zorgen, ik heb zowel een MainPage.xaml.cs als de App.xaml.cs die u meer duidelijkheid geven moeten wanneer na langs gehecht.