Я изучил намерение ACTION_MEDIA_BUTTON
, и я пытаюсь использовать его, перехватывать нажатия кнопок и представлять их на экране с помощью тоста.Я зарегистрировал приемник для перехвата двух намерений:
ACTION_HEADSET_PLUG
- подключение гарнитуры
ACTION_MEDIA_BUTTON
- получение нажатий кнопок
Это сделано в моей основной деятельности:
IntentFilter mediaFilter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
mediaFilter.setPriority(10000);
registerReceiver(_receiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));
registerReceiver(_receiver, mediaFilter);
Это часть приемника, которая обрабатывает нажатия кнопки:
if (action.equals(Intent.ACTION_HEADSET_PLUG))
{
Toast.makeText(context, "earphones activity",Toast.LENGTH_SHORT).show();
if (intent.getExtras().getInt("state")==1)//if plugged
Toast.makeText(context, "earphones plugged",Toast.LENGTH_LONG).show();
else Toast.makeText(context, "earphones un-plugged",Toast.LENGTH_LONG).show();
}
else
if (action.equals(Intent.ACTION_MEDIA_BUTTON))
{
Toast.makeText(context, "button pressed",Toast.LENGTH_LONG).show();
key=intent.getExtras().getString("EXTRA_KEY_EVENT");
Toast.makeText(context, key,Toast.LENGTH_LONG).show();
}
Сейчасчасть, которая обрабатывает плагин и удаление гарнитуры, работает нормально, но часть, которая перехватывает нажатие кнопки, не работает.
Есть ли причина, по которой код, обрабатывающий ACTION_MEDIA_BUTTON
, не работает?
Есть ли у меня специальное разрешение для перехвата такого намерения?
Я использую Samsung Galaxy S2 для проверки кода.
Я посмотрел всепохожие посты и все перепробовал.К сожалению, ничего не работает.