BroadcastReceiver для ACTION_MEDIA_BUTTON не работает

Я пишу приложение для Android для версии 4.0.3 (ICS) ОС Android. Проблема в том, что я не получаю вывод из моего Log.d () в методе onReceive () BroadcastReceiver, что означает, что мое приложение неправильно обрабатывает трансляцию.

Я прочитал бесчисленные вопросы о том, как выполнить код при нажатии ACTION_MEDIA_BUTTON. Я даже скопировал + вставил код, когда мой не работал, просто чтобы посмотреть, будет ли он работать.

ACTION_MEDIA_BUTTON я хочу обработать этоsingle кнопка на наушниках, которые позволяют пользователю принимать / завершать вызовы, воспроизводить / приостанавливать музыку.Instead of my application handling this button, when I click it, the stock music player on my Nexus S Android starts playing a song.

Я не поместил свой код в другой класс, может, поэтому он не работает?

Вот код, найденный в методе onCreate () (этот код, который я скопировал с веб-сайта после того, как код, который я написал, не работает):

<code>IntentFilter mediaButtonFilter = new IntentFilter(
            Intent.ACTION_MEDIA_BUTTON);
    mediaButtonFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
    BroadcastReceiver brMediaButton = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            Log.d("Event", "Media button!");
            this.abortBroadcast();

            KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            if(key.getAction() == KeyEvent.ACTION_UP) {
                int keycode = key.getKeyCode();
                if(keycode == KeyEvent.KEYCODE_MEDIA_NEXT) {
                    Log.d("TestApp", "Next Pressed");
                } else if(keycode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) {
                    Log.d("TestApp", "Previous pressed");
                } else if(keycode == KeyEvent.KEYCODE_HEADSETHOOK) {
                    Log.d("TestApp", "Head Set Hook pressed");
                }
            }

        }
    };
    registerReceiver(brMediaButton, mediaButtonFilter);
</code>

Все, что мне действительно нужно для проверки, это KEYCODE_HEADSETHOOK, но не мешало бы иметь другой код для тестирования, я исправлю его, как только смогу заставить все работать правильно.

В моем манифесте:

<code><intent-filter android:priority="2147483647" >
            <action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</code>

Первоначально я думал, что это может быть проблема с разрешениями, поскольку я не указал никаких разрешений для этого, однако я не получил ни одного сообщения об ошибке.

Как я уже говорил ранее, я попробовал много вариантов этого. Одним из примеров было использование кода по этой ссылкешироковещательный приемник включенПолучить проблему ACTION_MEDIA_BUTTON Android с исправлениями CommonsWare. Однако снова я изменил его, чтобы он не был в отдельном классе.

Спасибо заранее за вашу помощь.

Ответы на вопрос(3)

Ваш ответ на вопрос