MEDIA BUTTON是幹什麼的? 在手機,有線耳機或無線藍牙耳機上有Media playback button ,好比play, pause,stop, next等,Android 系統在收到這些按鍵後,會廣播android.intent.action.MEDIA_BUTTON 這個Intent,裏面就包含了各類鍵(play, pause,stop 等)。 還有一種狀況是Screen lock上的遠程播放控制界面(Music widget),在點擊play, pause, next Button時,Android系統也會廣播此Intent. 相應的App在收到此廣播後,能夠作出對應的反應。html
如何對media button 做出反應?android
<receiver android:name=".RemoteControlReceiver"> <intent-filter> <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver>編程
指南:Android裏是多任務的環境,會有多個App要求去監聽MEDIA_BUTTON intent,並且該註冊是排他性的, 這意味着最後一個註冊MEDIA_BUTTON intent receiver的app纔會收到此廣播。 App必須編程來控制何時開始須要接收此廣播。 通常是開始播放Music後,須要註冊監聽,而在中止播放後取消監聽。 最好的辦法是在獲取AudioFocus後註冊此監聽, 而在失去AudioFocus時取消此監聽!!! 若是別的App還在播放Music,你的app又沒有得到AudioFocus的狀況下去註冊此監聽,這屬於搗亂行爲,Android framework (AudioService)並不會來阻止你這樣作,但這會影響到用戶體驗。app
代碼註冊以及取消監聽方式: AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE); ...ide
// Start listening for button presses am.registerMediaButtonEventReceiver(RemoteControlReceiver); ...code
// Stop listening for button presses am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);htm
參考自: http://developer.android.com/training/managing-audio/volume-playback.htmlget