【发布时间】:2015-11-29 12:22:00
【问题描述】:
我有一个应用程序,我希望在其中拿起蓝牙免提耳机上的按钮并执行我自己的功能。我认为这种耳机的行为可能与蓝牙音乐耳机不同。
反正按下按钮好像会生成一个;
android.intent.action.VOICE_COMMAND
不是;
android.intent.action.MEDIA_BUTTON
就像按下有线耳机上的按钮一样。
这被系统拾取并启动内置的谷歌语音搜索。我不想要这个。在我的应用程序中并按下时,我想处理并使用此操作。我不能!
如果我将此添加到清单中的应用程序;
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.VOICE_COMMAND" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
然后我的应用程序启动,但您得到对话框来控制默认的 VOICE_COMMAND,这是我不想要的。如果我删除了 DEFAULT,则按下按钮会直接进入 Google 搜索,并且不会靠近我的应用程序。
如果我将 Intent 过滤器添加到清单的 Receivers 部分,我也不会调用任何广播接收器。所以我找不到捕获 VOICE_COMMAND 动作的方法。
拦截 VOICE_COMMAND 的正确/有效方法是什么,以便在活动运行时以自定义方式使用它,而不默认使用系统语音搜索?
我很难找到答案,但我找不到任何方法来以自定义方式处理应用程序中的 VOICE_COMMAND 操作。我很高兴该按钮可以在其他时间启动 google 搜索,但是当我的应用程序被使用时,我只想在按下按钮时执行特定于应用程序的操作。
这似乎是一件合理的事情,肯定是可能的吗?
【问题讨论】:
标签: android-intent android-manifest android-bluetooth android-search