Android вещание приемник на приеме не выполнено - PullRequest
2 голосов
/ 26 августа 2011

Я хотел создать широковещательный приемник, который прослушивает android.intent.action.MEDIA_BUTTON, получить из него extra_key_event и действовать соответственно.Каким-то образом действие по приему не выполняется.

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

receiver android:name="MediaButtonReceiver"
intent-filter
 action android:name="android.intent.action.MEDIA_BUTTON" 
intent-filter

приемник

В моем трансляционном приемнике:

public class MVCS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
        /* handle media button intent here by reading contents */
        /* of EXTRA_KEY_EVENT to know which key was pressed    */

        KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT); 
        if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
            Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();  
        }
    }
}

Однако, когда я нажимаю громкость вниз, ничего не отображаетсяключ.

Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 26 августа 2011

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

MyActivity.registerReceiver (myBroadcastReceiver, MediaButtonReceiver);

Лучший способ сделать это - зарегистрировать свой приемник в OnStart () своей деятельности и отменить регистрацию в OnStop ().

...