4

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

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>

这两个活动都可以通过命令“start [android:label for activity]”从谷歌搜索启动。然后我可以在 onResume() 处做相应的操作。

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

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

4

1 回答 1

0

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

于 2016-02-25T09:32:02.567 回答