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. Однако снова я изменил его, чтобы он не был в отдельном классе.
Спасибо заранее за вашу помощь.