You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 10.4中正确构建ACTION_RECOGNIZE_SPEECH Intent?

正确构建Android语音识别Intent的Delphi代码

核心问题修正点

  • ACTION_RECOGNIZE_SPEECH不属于Intent类常量,而是属于android.speech.RecognizerIntent类,需通过TJRecognizerIntent.JavaClass访问。
  • 语音识别的参数需以键值对形式传入,不能将参数名和值合并为单个字符串。
  • 语音识别需要通过startActivityForResult启动,才能获取识别后的返回结果。

修正后的完整代码

// 需确保已引用 Androidapi.JNI.Speech 单元
procedure TsendForm.Button8Click(Sender: TObject);
var
  Intent: JIntent;
  PackageManager: JPackageManager;
  ResolveInfoList: JList;
begin
  // 创建语音识别Intent
  Intent := TJIntent.JavaClass.init(TJRecognizerIntent.JavaClass.ACTION_RECOGNIZE_SPEECH);
  
  // 设置语言模型为自由格式
  Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_LANGUAGE_MODEL,
    TJRecognizerIntent.JavaClass.LANGUAGE_MODEL_FREE_FORM);
  
  // 可选:设置语音识别提示文本
  Intent.putExtra(TJRecognizerIntent.JavaClass.EXTRA_PROMPT, StringToJString('请说出内容'));
  
  // 检查设备是否支持语音识别服务
  PackageManager := MainActivity.getPackageManager;
  ResolveInfoList := PackageManager.queryIntentActivities(Intent, TJPackageManager.JavaClass.MATCH_DEFAULT_ONLY);
  if ResolveInfoList.size > 0 then
  begin
    // 启动识别界面,自定义请求码(示例用1001)
    TAndroidHelper.Activity.startActivityForResult(Intent, 1001);
  end
  else
  begin
    ShowMessage('设备未安装语音识别服务');
  end;
end;

// 重写Activity的onActivityResult方法,获取语音识别结果
procedure TMainActivity.ActivityResult(RequestCode, ResultCode: Integer; Data: JIntent);
var
  Results: JArrayList;
begin
  inherited;
  // 匹配请求码和结果状态
  if (RequestCode = 1001) and (ResultCode = TJActivity.JavaClass.RESULT_OK) then
  begin
    // 获取识别结果列表
    Results := Data.getStringArrayListExtra(TJRecognizerIntent.JavaClass.EXTRA_RESULTS);
    if Results.size > 0 then
    begin
      // 取出第一个识别结果展示
      ShowMessage(JStringToString(Results.get(0)));
    end;
  end;
end;

重要注意事项

  • 必须在项目中引用Androidapi.JNI.Speech单元,否则无法调用TJRecognizerIntent相关常量和方法。
  • 请求码(示例中的1001)可自定义,只需保证onActivityResult中的判断逻辑与之一致即可。
  • 部分国产设备可能未预装Google语音识别服务,需提示用户安装兼容的语音识别应用。

内容的提问来源于stack exchange,提问作者Winston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:31:14