|
源码:
- public static boolean isRecognitionAvailable(final Context context) {
- final List<ResolveInfo> list = context.getPackageManager().queryIntentServices(
- new Intent(RecognitionService.SERVICE_INTERFACE), 0);
- return list != null && list.size() != 0;
- }
复制代码
详细说明:
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 接口的语音识别服务,为后续判断是否可进行语音识别做准备 |
|