我正在使用广播接收器来检测耳机按钮点击。以下是广播接收器的代码。
public class HeadSetButtonStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON)) {
KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event != null) {
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {
Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
EventBus.getDefault().post(new HeadSetButtonEvent("1"));
}
}
}
}
}
它在API 22(棒棒糖)上运行良好,但它不适用于API 23(棉花糖设备)。我试着查看stackoverflow但没有找到任何东西。
答案 0 :(得分:1)
尝试使用int
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
int intKey = event.getKeyCode();
}
您可能会为1个按钮获得2个不同的int值。
答案 1 :(得分:0)
check the priority
IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
MediaButtonIntentReceiver recev = new MediaButtonIntentReceiver();
filter.setPriority(1000);
registerReceiver(recev , filter);