Cortana è l'assistente personale creato da Microsoft che ritroviamo nei nostri Windows Phone, così come da Windows 10 ritroveremo nei nostri PC e tablet. Cortana è guidata sia da comandi scritti che da comandi dettati vocalmente e possiamo anche fare in modo di insegnare a Cortana dei comandi specifici per interagire con la nostra applicazione.
Ci basterà infatti creare un file XML con la lista dei comandi ed aggiungerlo alla nostra applicazione:
<?xml version="1.0" encoding="utf-8"?> <VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1"> <CommandSet xml:lang="it-it"> <CommandPrefix> Mia app, </CommandPrefix> <Example> mostrami viaggi per? </Example> <Command Name="showTripToDestination"> <Example> mostra viaggi per Londra </Example> <ListenFor> mostra viaggi per {destination} </ListenFor> <Feedback> caricando i viaggi per {destination} </Feedback> <Navigate/> </Command> <PhraseList Label="destination"> <Item> Londra </Item> <Item> Milano </Item> <Item> New York </Item> </PhraseList> </CommandSet> </VoiceCommands>
In seguito quello che dobbiamo fare è registrare questo file XML all'avvio della nostra applicazione così da istruire Cortana che sarà in grado di interagire con la nostra app:
var storageFile = await StorageFile.GetFileFromApplicationUriAsync(
new Uri("ms-appx:///myVCD.xml"));
await VoiceCommands.VoiceCommandDefinitionManager.
InstallCommandDefinitionFromStorageFileAsync(storageFile);Chiaramente potremo poi interagire nuovamente intercettando la richiesta dell'utente e il comando dato a Cortana attraverso gli argomenti di tipo ActivationKind.VoiceCommand che vengono passati direttamente nel metodo OnActivated della classe App:
var commandArgs = e as Activation.VoiceCommandActivatedEventArgs; SpeechRecognitionResult speechRecognitionResult = commandArgs.Result; // comando: es. showTripToDestination string voiceCommandName = speechRecognitionResult.RulePath[0]; // testo: es. Mostra viaggi per Londra string textSpoken = speechRecognitionResult.Text;
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Welcome to Future Dev Day 2026
Nuove validazioni Form Blazor
Realizzare un accordion con gli elementi HTML details e summary
Gestione delle issue type con GitHub
Ottimizzare i costi con Smart tier in Azure Blob Storage
Controllare la velocità di spostamento su una pagina HTML
Eseguire una ExecuteUpdateAsync senza usare un'expression con Entity Framework
Evidenziare una porzione di testo in un pagina dopo una navigazione
Blazor e InputHidden in .NET 10
Gestire trasferimenti cloud con Azure Storage Mover
Avviare rapidamente un container con Azure Container Apps Express
Arricchire l'interfaccia di .NET Aspire


