Android - 语音控制 - 媒体意图

时间:2011-04-11 00:48:28

标签: android

我刚刚开始研究Android开发,我正在创建一个小应用程序,它将“收听”意图映射到媒体播放器功率放大器(最近发布的api)。 这个应用程序没有gui它是语音控制和功率放大器之间的粘合剂。

我可以捕捉到android.media.action.MEDIA_PLAY_FROM_SEARCH和控制功率放大器的意图,但我的问题是为了捕获android.media.action.MEDIA_PLAY_FROM_SEARCH我必须将我的应用声明为活动,所以当我使用语音控制时发送我的应用程序在屏幕上加载的意图。我试图将应用程序声明为接收者\服务,但我无法让他们捕获意图。

应用程序如何隐藏但仍能捕获此意图?

谢谢,Ger。

1 个答案:

答案 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>