如何启用Android Open Application语音交互

时间:2016-06-11 16:22:51

标签: android voice-recognition

根据system voice command docs,您可以使用语音命令打开应用程序。例如OK Google - open foobar。另外根据文档,这个默认工作;没有具体的意图。
在我的示例开发应用程序中,这不起作用。我尝试在intent-filter中添加一些动作和类别排列的组合,但到目前为止没有运气。
我定位的最低SDK为23,在使用6.0.1的设备上进行测试。

这是否有效,如果是,那么我需要启用它的新空活动项目有哪些变化?

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"