У меня тоже есть такая же проблема с регистрацией медиа кнопки.
Периодически Android возвращает регистрацию мультимедийной кнопки на музыкальный проигрыватель по умолчанию. Я не смог понять, почему. Это может происходить, когда приложение активно воспроизводится, а также когда воспроизведение моего приложения приостановлено.
После того, как несколько пользователей пожаловались, что их кнопки управления паузой и воспроизведением через Bluetooth периодически перестают работать для управления моим приложением, я реализовал код, который перерегистрирует мое приложение, вызывая registerMediaButtonEventReceiver каждые 2 секунды. Это позволяет мне вернуть регистрацию кнопки и, по большей части, избегать временного окна, в котором пользователь нажимает кнопку мультимедиа Bluetooth, а медиаплеер по умолчанию отвечает.
Мое приложение удерживает звуковой фокус в течение всего этого периода времени, но все еще периодически теряет события кнопки Bluetooth, пока оно имеет звуковой фокус. Мое приложение всегда отменяет регистрацию приемника событий мультимедийной кнопки, если оно вызывается с уведомлением о потере звукового фокуса, а затем регистрируется снова, если оно вызывается позже, когда временная потеря звукового фокуса возвращает звуковой фокус.
Обходной прием, позволяющий сохранить работу 2-секундного таймера и перерегистрацию, работает, но я хотел бы избавиться от этого 2-секундного таймера, если кто-то нашел обходной путь для регистрации мультимедийных кнопок, периодически переключаясь обратно на медиаплеер по умолчанию.