Handle HEADSETHOOK as 'play' in MediaButtonReceiver.onReceive

Issue: androidx/media#1581

#cherrypick

PiperOrigin-RevId: 662515428
This commit is contained in:
ibaker 2024-08-13 07:50:02 -07:00 committed by Copybara-Service
parent 2d527b08c3
commit c48c051ce2
2 changed files with 6 additions and 1 deletions

View File

@ -100,6 +100,10 @@
action, as
[documented](https://developer.android.com/reference/androidx/media3/session/MediaSession#media-key-events-mapping)
([#1493](https://github.com/androidx/media/issues/1493)).
* Handle `KEYCODE_HEADSETHOOK` as a 'play' command in
`MediaButtonReceiver` when deciding whether to ignore it to avoid a
`ForegroundServiceDidNotStartInTimeException`
([#1581](https://github.com/google/ExoPlayer/issues/1581)).
* UI:
* Downloads:
* OkHttp Extension:

View File

@ -128,7 +128,8 @@ public class MediaButtonReceiver extends BroadcastReceiver {
}
if (Util.SDK_INT >= 26) {
if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_MEDIA_PLAY
&& keyEvent.getKeyCode() != KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) {
&& keyEvent.getKeyCode() != KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE
&& keyEvent.getKeyCode() != KeyEvent.KEYCODE_HEADSETHOOK) {
// Starting with Android 8 (API 26), the service must be started immediately in the
// foreground when being started. Also starting with Android 8, the system sends media
// button intents to this receiver only when the session is released or not active, meaning