我刚刚开始研究Android开发,我正在创建一个小应用程序,它将“收听”意图映射到媒体播放器功率放大器(最近发布的api)。 这个应用程序没有gui它是语音控制和功率放大器之间的粘合剂。
我可以捕捉到android.media.action.MEDIA_PLAY_FROM_SEARCH和控制功率放大器的意图,但我的问题是为了捕获android.media.action.MEDIA_PLAY_FROM_SEARCH我必须将我的应用声明为活动,所以当我使用语音控制时发送我的应用程序在屏幕上加载的意图。我试图将应用程序声明为接收者\服务,但我无法让他们捕获意图。
应用程序如何隐藏但仍能捕获此意图?
谢谢,Ger。
答案 0 :(得分:0)
如果我理解您的需求,您实际上不需要在您的应用中使用任何活动。只是一个扩展BroadcastReceiver并实现它的onRecieve(Context,Intent)方法的类。
然后在您的清单中,您可以将该接收器绑定到您想要侦听的特定意图。您的应用程序将在没有UI的情况下启动,其入口点是您实现的BroadcastReceiver类。
清单条目看起来像:
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.android.music.metachanged" />
<action android:name="com.amazon.mp3.metachanged" />
<!-- <action android:name="com.amazon.mp3.playstatechanged" /> -->
<!-- <action android:name="com.android.music.playbackcomplete" />-->
<action android:name="com.android.music.playstatechanged" />
<action android:name="com.htc.music.metachanged" />
<!-- <action android:name="com.htc.music.playbackcomplete" />-->
<!-- <action android:name="com.htc.music.playstatechanged" /> -->
<action android:name="com.sec.android.app.music.metachanged" />
<action android:name="com.nullsoft.winamp.metachanged" />
<action android:name="com.nullsoft.winamp.playstatechanged" />
</intent-filter>
</receiver>