因此,我编写了一个具有简单附加功能的应用程序,例如切换手机 Wi-Fi。我已经阅读了关于“Adding Voice Capabilities”的 Android 开发者文章' 并已成功通过 Google Now 语音命令启动副功能 Activity :“启动 mySideFeature Activity ”,而无需启动我的整个应用程序。
问题是,为了通过语音命令启动 Activity,您必须声明其操作 .MAIN 及其类别 .LAUNCHER。这意味着我的应用程序现在将有两个启动器图标,语音命令 Activity 和主要应用程序 Activity 本身,显示在应用程序抽屉中。
我做了一些研究,但我无法找到一种方法来从 Activity 中揭示 Activity 是通过点击启动器图标还是通过语音命令启动的。
是否可以在没有图标启动器的情况下使用语音命令启动 Activity?
这是我的 list 的一个简单版本,您将在其中看到两个带有启动器 intent-filter 的 Activity 的问题。
<application>
<activity android:name="MainAppActivity" android:label="Main App">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="sideFeatureActivity" android:label="Launch Side Feature">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
最佳答案
在您的主要 Activity 的 onCreate 中添加:
Intent intent = getIntent();
Set<String> categories = getCategories();
if (categories != null && categories.contains(".LAUNCHER")) {
... //Started via launcher tap
} else {
... //Started via voice command
}
关于android - 是否可以在没有图标启动器的情况下启动语音命令 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35108340/