Я изучил намерение 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 для тестирования кода.
Я просмотрел все похожие сообщения и пробовал все. К сожалению, ничего не работает.