我正在尝试打开Google语音搜索应用
Intent i;
PackageManager manager = getPackageManager();
try {
i = manager.getLaunchIntentForPackage("com.google.android.voicesearch");
if (i == null)
throw new PackageManager.NameNotFoundException();
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
} catch (PackageManager.NameNotFoundException e) {
}
这不会启动语音搜索应用程序, 但是,如果我使用com.google.android.apps.maps作为软件包名称,则会打开Google地图应用。
我不明白为什么语音搜索没有打开,即使包名是正确的。
解决方案
Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
startActivity(intent);
请看 Launch Preinstalled App from activity (Google Voice Search) Android了解有关解决方案的更多信息。
谢谢。
答案 0 :(得分:1)
正如您可以阅读here,getLaunchIntentForPackage(String packageName)
返回一个“好”意图,在包[...]
中启动前门活动首先是当前的实现 对于CATEGORY_INFO类别中的主要活动,接下来是主要活动 CATEGORY_LAUNCHER类别中的活动,如果两者都不返回null 找到了。
因此,在意图中,已经设置了类别。如果您手动更改它,可能是您违反了意图,因为该类别可能不是经理找到的正确类别。
所以,只需删除
行i.addCategory(Intent.CATEGORY_LAUNCHER);