Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 37|回复: 0

ASR 详解(java版本)

[复制链接]

313

主题

449

帖子

2824

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2824
发表于 2025-6-27 17:02:57 | 显示全部楼层 |阅读模式
源码:
  1. public static boolean isRecognitionAvailable(final Context context) {
  2.     final List<ResolveInfo> list = context.getPackageManager().queryIntentServices(
  3.             new Intent(RecognitionService.SERVICE_INTERFACE), 0);
  4.     return list != null && list.size() != 0;
  5. }
复制代码


详细说明:
context.getPackageManager() 获取当前应用的 PackageManager 实例,它可用于查询系统中已安装组件(如 Service、Activity)的信息。
queryIntentServices(new Intent(RecognitionService.SERVICE_INTERFACE), 0) 查询系统中所有声明支持处理指定 Intent 的 Service。
RecognitionService.SERVICE_INTERFACE 是一个标准的 Action 字符串,表示语音识别服务的接口。
queryIntentServices 返回一个 List<ResolveInfo>,其中每个 ResolveInfo 对象代表一个匹配的服务。
final List<ResolveInfo> list 存储查询结果,如果列表非空,则表示至少有一个语音识别服务可用。
总结: 这两行代码的作用是通过 PackageManager 查询系统中是否存在实现了 RecognitionService 接口的语音识别服务,为后续判断是否可进行语音识别做准备
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-7-7 10:18 , Processed in 0.012253 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表