如何在安卓系统中拦截耳机上的按钮按下?
2022-09-04 23:04:23
我研究了意图,我试图使用它,拦截按钮按下并使用吐司将它们呈现在屏幕上。我注册了接收器以拦截两个意图: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
是否有特殊权限需要我才能拦截此类意图?
我正在使用三星Galaxy S2来测试代码。
我已经看过所有类似的帖子并尝试了一切。不幸的是,似乎没有任何效果。