根据system voice command docs,您可以使用语音命令打开应用程序。例如OK Google - open foobar
。另外根据文档,这个默认工作;没有具体的意图。
在我的示例开发应用程序中,这不起作用。我尝试在intent-filter中添加一些动作和类别排列的组合,但到目前为止没有运气。
我定位的最低SDK为23,在使用6.0.1的设备上进行测试。
这是否有效,如果是,那么我需要启用它的新空活动项目有哪些变化?
答案 0 :(得分:1)
据我所知,Google只会迭代已安装的应用程序列表,并在找到完全匹配时打开相应的应用程序。
要对此进行测试,请使用以下Intent
final String PACKAGE_NAME_GOOGLE_NOW = "com.google.android.googlequicksearchbox";
final String GOOGLE_NOW_SEARCH_ACTIVITY = ".SearchActivity";
final String APP_NAME = "Open " +getString(R.string.app_name);
final Intent startMyAppIntent = new Intent(Intent.ACTION_WEB_SEARCH);
startMyAppIntent.setComponent(new ComponentName(PACKAGE_NAME_GOOGLE_NOW,
PACKAGE_NAME_GOOGLE_NOW + GOOGLE_NOW_SEARCH_ACTIVITY));
startMyAppIntent.putExtra(SearchManager.QUERY, APP_NAME);
startMyAppIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(startMyAppIntent);
} catch (final ActivityNotFoundException e) {
e.printStackTrace();
}
如果这会打开您的应用程序,那么只需要说明您的应用程序名称的语音,或Google如何解释您的应用程序的发音。
我认为应该有一个选项可以添加一个“拼音应用”标签'应用程序的清单(或其他一些全局可用的配置文件),如果唯一名称不足以生成语音搜索结果,Google可以打开您的应用程序。
如果这不打开您的应用程序,请检查您是否在清单中正确定义了应用程序名称,如下所示:
<application
android:label="@string/app_name"