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



任务:通过 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() 上执行相应的操作。

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

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

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

相关内容

  • 没有找到相关文章

最新更新