【问题标题】:How to integrate searchable Activity with Ok Google voice search?如何将可搜索活动与 Ok Google 语音搜索集成?
【发布时间】:2015-01-14 22:52:18
【问题描述】:

我正在尝试实现Ok Google Voice Search integration。但是,当我说“在 app_name 上搜索 Android”时,我无法深度链接到我的应用。相反,它只是在网络上搜索该词。

这就是我所做的:

  1. 创建/res/xml/searchable.xml

    <?xml version="1.0" encoding="utf-8"?>
    <searchable xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/app_name"
        android:hint="@string/search_hint">
    </searchable>
    
  2. 创建一个新的活动

    public class ExposedSearchActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            String search = getIntent().getStringExtra(SearchManager.QUERY);
            Log.wtf("", "q=" + search);
        }
    }
    
  3. 将意图过滤器附加到可搜索的活动

    <activity
        android:name=".search.ExposedSearchActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:screenOrientation="fullSensor">
        <!--Deeplink from google now-->
        <intent-filter>
            <action android:name="com.google.android.gms.actions.SEARCH_ACTION"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
        <!--Making it searchable-->
        <intent-filter>
            <action android:name="android.intent.action.SEARCH"/>
        </intent-filter>
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable"/>
    </activity>
    
  4. 我的测试设备是运行 Lollipop LPX13D 和 Google Search 4.0.26.1499465.arm 的 Nexus 5

我可能忘记了哪些其他步骤?提前致谢。

【问题讨论】:

  • @1,感谢您的意见。不幸的是,我尝试了这两种方法都无济于事。 T___T
  • @SomeNoobStudent 您的应用是否在 Play 商店中发布?它需要在该功能起作用之前。
  • @4,确实!那是缺失的环节。看来我们目前只能通过 adb 命令进行测试。
  • 我喜欢 Log.wtf() 非常有帮助:)

标签: android search


【解决方案1】:

经过大量搜索,我在comment on Google+ by the author of the blog post, Jarek Wilkiewicz找到了答案。

是的,该应用必须发布到 Play 商店才能使用 功能工作。帮助调试最终结果的一种方法是触发 意图通过 adb,例如: adb shell am start -a com.google.android.gms.actions.SEARCH_ACTION -e 查询 foo

因此,我在 Play 商店中已有的应用程序上测试了此功能,并且运行良好。

【讨论】:

  • 谢谢。这让我在一天的大部分时间里都快疯了
  • 有什么技巧可以让它工作吗?有人在这方面发现了什么吗?
  • @2 您必须在已在 Play 商店中发布的应用中实现代码。只需在已发布的应用程序中重做我在问题中列出的步骤,语音搜索就可以工作了。
  • @SomeNoobStudent,我的应用程序已在 playstore 上发布,但我是从 adb 安装的,但它无法正常工作。我需要从 Playstore 下载才能使用吗?
  • 不,您可以使其与通过 ADB 安装的调试版本一起使用。
【解决方案2】:

我已经为我们的 Android 应用程序找到了这个谷歌语音搜索命令的工作解决方案。

请参阅以下链接以使其正常工作:

1) https://gist.github.com/raveeshbhalla/186325d1bb25d13bd7a0

2) https://github.com/google/search-samples/issues/24

3)https://antonioleiva.com/voice_search_google_now/

4) https://developers.google.com/voice-actions/system/

5)https://developer.android.com/guide/components/intents-common#java

一些菜鸟学生列出的上述答案。我要走得更远 如何通过在搜索查询中添加字符串的调试 apk 对其进行测试?

在您的 PC 中打开命令提示符,然后将路径更改为您的 adb 路径。然后执行以下命令。

注意:在执行以下命令之前,请关闭您的调试应用,然后进行测试。

1) adb shell am start -a com.google.android.gms.actions.SEARCH_ACTION -e query app_package_name

2)adb shell am start -a com.google.android.gms.actions.SEARCH_ACTION -e query "Hello" app_package_name

【讨论】:

  • 你不需要第一个 adb 命令。第二个足以打开android应用程序并执行代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
  • 2018-02-14
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多