从谷歌搜索或语音输入开始活动

时间:2015-06-18 14:45:46

标签: android wear-os google-voice google-search-platform google-voice-actions

任务:在我的应用程序中执行某些操作,通过命令从android wear watch by speak命令。它与谷歌搜索的发送命令相同(通过说或写命令)。

如何在http://developer.android.com/training/wearables/apps/voice.html"描述应用程序提供的语音操作"

我创建了两个活动:

    <activity
        android:name=".MainActivity"
        android:label="speech test main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".SomeAction"
        android:label="speech test action" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

这两项活动都可以通过命令&#34;启动[android:label for activity]&#34;从谷歌搜索启动。然后我可以在onResume()上做相应的动作。

但是系统启动器图标是为每个活动创建的! 我尝试将类别更改为DEFAULT,图标消失,但无法从Google搜索启动活动。似乎是谷歌搜索只能启动与LAUNCHER类别的活动。

因此,需要从谷歌搜索启动活动(或者只是发送意图,如果可能)。问题 - 发射器上的额外图标。

1 个答案:

答案 0 :(得分:0)

您无法使用<action android:name="android.intent.action.LAUNCHER" />两次,因为这会产生2个启动图标。另外,从两个活动中删除<category android:name="android.intent.category.DEFAULT" />。相反,只关注只有一个主要的启动器活动,其中getIntent()被调用,然后在必要时将意图附带的任何意图/额外/标志/其他数据重新发送到您的第二个活动中。或者,在主启动器活动中处理意图,然后在第二个活动中调用另一个方法。