There's a setting under Speech, Inking, and Typing. To get there,
1. First, go to Settings and click "Time & Language".
2. Select the "Speech" option.
3. Go to the "Speech, Inking & Typing privacy settings".
4. Then, click on the pop-up and turn the setting ON.
After that, any software that uses the Speech Recognition API will work.
A helpful way to tell users to turn on would be...
catch (System.Runtime.InteropServices.COMException e) when (e.HResult == unchecked((int)0x80045509))
//privacyPolicyHResult
//The speech privacy policy was not accepted prior to attempting a speech recognition.
{
ContentDialog Dialog = new ContentDialog()
{
Title = "The speech privacy policy was not accepted",
Content = "You need to turn on a button called 'Get to know me'...",
PrimaryButtonText = "Shut up",
SecondaryButtonText = "Shut up and show me the setting"
};
if (await Dialog.ShowAsync() == ContentDialogResult.Secondary)
{
const string uriToLaunch = "ms-settings:privacy-speechtyping";
//"http://stackoverflow.com/questions/42391526/exception-the-speech-privacy-policy-" +
//"was-not-accepted-prior-to-attempting-a-spee/43083877#43083877";
var uri = new Uri(uriToLaunch);
var success = await Windows.System.Launcher.LaunchUriAsync(uri);
if (!success) await new ContentDialog
{
Title = "Oops! Something went wrong...",
Content = "The settings app could not be opened.",
PrimaryButtonText = "Shut your mouth up!"
}.ShowAsync();
}
}