任务:通过 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()
,然后在必要时将意图附带的任何意图/附加/标志/其他数据重新发送到您的第二个活动中。或者,在主启动器活动中处理意图,然后在第二个活动中调用另一个方法。