Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
在看music后台自动播放的问题时因为对这块不了解,以为开机默认打印的这条log会有关系
ActivityManager: Start proc 978:com.android.music/u0a29 for broadcast com.android.music/.MediaButtonIntentReceiver
事实上,这是和MediaButton有关系。
通俗一点讲,就是在你插了耳机,如果有些上面有按键,当你按下之后,系统就会调用music来播放音乐,此功能正是通过MediaButtonIntentReceiver来接收然后处理播放/暂停/下一曲等功能的。
定义:
本质上它也是一个Broadcast Receiver,在xml有静态定义:
packages/apps/Music/AndroidManifest.xml
<receiver android:name="com.android.music.MediaButtonIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
<action android:name="android.media.AUDIO_BECOMING_NOISY" />
</intent-filter>
</receiver>
接收”android.intent.action.MEDIA_BUTTON” 和 “android.media.AUDIO_BECOMING_NOISY”两种Action.
前者处理按键事件, 后者处理比如耳机插拔等事件(比如收到事件后停止播放)。具体说明如下:
Intent.java
/**
* Broadcast Action: The "Media Button