检测耳机按钮双击和长按(单击) Android
我正在尝试下面的代码
public class MediaButtonReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("----onReceive--", " ");
if (Intent.ACTION_HEADSET_PLUG.equals(intent.getAction())) {
Log.e("----jack out--", " ");
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();
}
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
Toast.makeText(context, "button pressed", Toast.LENGTH_LONG).show();
// key=intent.getExtras().getString("EXTRA_KEY_EVENT");
}
abortBroadcast();
}它可以检测到耳机按钮的正确点击
但是,我们如何检测耳机的长点击和双击
发布于 2017-01-22 20:30:04
对于双击,您可以通过覆盖Activity onKeyDown方法并测量每次单击之间经过的时间来检测它:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HEADSETHOOK){
//check if it's the first or the second click and measure time between them
return true;
}
return super.onKeyDown(keyCode, event);
}还有一种Activity onKeyLongPress方法,但它似乎不能在我的带耳机按钮的设备上工作,因为当我长时间按下耳机按钮时,它会启动Google Now,但我在活动中检测不到它
https://stackoverflow.com/questions/36172380
复制相似问题