Поделиться через


SFSpeechRecognizer.RequestAuthorization Метод

Определение

Асинхронно представляет системное диалоговое окно для пользователя, запрашивающего доступ.

[Foundation.Export("requestAuthorization:")]
public static void RequestAuthorization (Action<Speech.SFSpeechRecognizerAuthorizationStatus> handler);
static member RequestAuthorization : Action<Speech.SFSpeechRecognizerAuthorizationStatus> -> unit

Параметры

Атрибуты

Комментарии

Как и в случае с другими средствами, связанными с конфиденциальностью, пользователь должен положительно разрешить приложению доступ к распознаванию речи.

Приложения, использующие распознавание речи, должны добавить следующий ключ с соответствующими описаниями в свой info.plist файл:

<key>NSSpeechRecognitionUsageDescription</key>
<string>Speech recognition will be used to determine which words you speak into this device's microphone.</string>          

Если у приложения нет этого ключа, операционная система выполнит автоматическое завершение работы во время выполнения без каких-либо исключений или возможности регистрировать ошибку.

Значение info.plist строки представляется пользователю в ответ на метод :RequestAuthorization(Action<SFSpeechRecognizerAuthorizationStatus>)

if (SFSpeechRecognizer.AuthorizationStatus != SFSpeechRecognizerAuthorizationStatus.Authorized)
{
	SFSpeechRecognizer.RequestAuthorization((status) => 
	{
	   switch (status)
	   {
		   case SFSpeechRecognizerAuthorizationStatus.Authorized:
			   InvokeOnMainThread(() => prepareButton.Enabled = true);
			   break;
		   case SFSpeechRecognizerAuthorizationStatus.Restricted:
		   case SFSpeechRecognizerAuthorizationStatus.NotDetermined:
		   case SFSpeechRecognizerAuthorizationStatus.Denied:
				 InvokeOnMainThread(() => prepareButton.Enabled = false);
			   break;
	   }
    });
}

Применяется к