[Android] Как вызвать диалог распознания речи?
uses
Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, FMX.Helpers.Android,
Androidapi.JNIBridge, Androidapi.JNI.JavaTypes;
type
JRecognizerIntentClass = interface(JObjectClass)
['{8AB8D43F-178D-4C79-9FC9-6DDA3D52CEBF}']
{Property Methods}
function _GetACTION_RECOGNIZE_SPEECH: JString;
function _GetEXTRA_PROMPT: JString;
function _GetEXTRA_LANGUAGE_MODEL: JString;
function _GetEXTRA_MAX_RESULTS: JString;
function _GetEXTRA_LANGUAGE: JString;
function _GetLANGUAGE_MODEL_WEB_SEARCH: JString;
{Properties}
property ACTION_RECOGNIZE_SPEECH: JString read _GetACTION_RECOGNIZE_SPEECH;
property EXTRA_PROMPT: JString read _GetEXTRA_PROMPT;
property EXTRA_LANGUAGE_MODEL: JString read _GetEXTRA_LANGUAGE_MODEL;
property EXTRA_MAX_RESULTS: JString read _GetEXTRA_MAX_RESULTS;
property EXTRA_LANGUAGE: JString read _GetEXTRA_LANGUAGE;
property LANGUAGE_MODEL_WEB_SEARCH: JString read _GetLANGUAGE_MODEL_WEB_SEARCH;
end;
[JavaSignature('android/speech/RecognizerIntent')]
JRecognizerIntent = interface(JObject)
['{5AE872F8-D057-4966-97B9-F8DD239C3656}']
end;
TJRecognizerIntent = class(TJavaGenericImport<JRecognizerIntentClass, JRecognizerIntent>)
end;
procedure OpenSpeechRecognizer;
var
Intent: JIntent;
begin
Intent := TJIntent.JavaClass.init( TJRecognizerIntent.JavaClass.ACTION_RECOGNIZE_SPEECH );
Intent.putExtra( TJRecognizerIntent.JavaClass.EXTRA_PROMPT,
StringToJString( 'Голосовой поиск Inforino' ) );
Intent.putExtra( TJRecognizerIntent.JavaClass.EXTRA_LANGUAGE_MODEL,
TJRecognizerIntent.JavaClass.LANGUAGE_MODEL_WEB_SEARCH );
Intent.putExtra( TJRecognizerIntent.JavaClass.EXTRA_MAX_RESULTS, 1 );
Intent.putExtra( TJRecognizerIntent.JavaClass.EXTRA_LANGUAGE, StringToJString( 'ru-RU' ) );
SharedActivity.startActivityForResult( Intent, 1 );
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenSpeechRecognizer;
end;
initialization
TRegTypes.RegisterType( 'Androidapi.JNI.GraphicsContentViewText.JDataSetObserver',
TypeInfo( JRecognizerIntent ) );
|