当用户长按(按住)耳机按钮时,我希望我的应用程序执行一些特定操作。我使用了BroadcastReceiver
for MEDIA_BUTTON
,它在没有运行 Google now 应用程序的手机上运行良好,可以进行长按的声音操作。但是在现在自动运行 Google 的手机中,我的应用程序只是被忽略了。我现在如何禁用谷歌并检测耳机按钮长按。这是onReceive
我BroadcastReceiver
班上的方法。
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent) intent
.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
int action = event.getAction();
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_HEADSETHOOK:
/**
* for long click
*/
if (action == KeyEvent.ACTION_DOWN) {
if (!isDown) {
isDown = true;
handler.postDelayed(l, LONG_CLICK_DELAY);
}
}
if (action == KeyEvent.ACTION_UP) {
/**
* for long click
*/
if (isDown)
isDown = false;
}
break;
}
abortBroadcast();
}