根据系统语音命令文档,您可以使用语音命令打开应用程序。例如OK Google - open foobar。此外,根据文档,这在默认情况下是可行的;没有具体的意图。
在我的示例开发应用程序中,这是行不通的。我尝试过在意图过滤器中添加几个动作和类别排列的组合,但到目前为止还没有成功。
我的目标是最小的SDK为23,在6.0.1的设备上进行测试。
这个应该工作吗?如果是的话,我需要对一个新的空活动项目进行哪些更改来启用它?
发布于 2016-06-12 16:45:05
据我所知,Google只是在安装的应用程序列表上迭代,如果它找到一个与完全匹配的,它就会打开相应的应用程序。
要测试这一点,请使用以下意图
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就可以打开您的应用程序。
如果没有打开应用程序,请检查是否正确地在清单中定义了应用程序名称,如下所示:
<application
android:label="@string/app_name"https://stackoverflow.com/questions/37765978
复制相似问题