已解决: 我正在拆分语音命令。如果用户说“打开浏览器”,我正在拆分它 使用“打开”,所以“浏览器”关键字在它之前包含空格。 我用“Open”&它工作了..这个愚蠢的错误让我花了一整天的时间......
我正在尝试从列表中打开具有已安装应用详细信息的特定应用。 具体来说,我将它与RecognizerIntent一起使用,意味着如果我说“计算器”,那么 它应该打开计算器App。
我已完成以下操作以获取已安装的应用列表:
PackageManager pm ;
List<ApplicationInfo> installedApps;
pm = getPackageManager();
installedApps = pm.getInstalledApplications(PackageManager.GET_META_DATA);
在List中安装应用程序后,我遍历列表以查明我需要的应用程序是否存在如下:
for(ApplicationInfo ai : installedApps)
{
String appName = ai.loadLabel(pm).toString().toLowerCase();
if(appName.equals(AppSearch[1)) //AppSearch[1] contains the result of speech i.e calculator
{
Intent openApp = new Intent(pm.getLaunchIntentForPackage(ai.packageName));
startActivity(openApp);
openApp.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
}
问题是它没有进入上述“if”条件。 如果我只是在“for”循环中打印应用程序的名称,那么它会显示所有名称, 但后来为什么我无法比较它&amp;然后打开它? 我做错了什么,请指导我...谢谢)
答案 0 :(得分:0)
对于语音识别,我不建议期望结果100%准确,特别是对于应用名称。此外,从您的评论中,您似乎不想检查字符串是否相等,但如果应用程序名称包含语音命令,这会产生很大的不同。
如果您只想检查语音结果是否包含在应用名称中,请使用
appName.contains(AppSearch[1]);