| 
 | 
 
源码: 
- 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 接口的语音识别服务,为后续判断是否可进行语音识别做准备 |   
 
 
 
 |