耳机按钮双击在安卓 [英] Headset button double click in android
本文介绍了耳机按钮双击在安卓的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用这个code在我的广播接收器检测单,双点击耳机按钮:
I used this code for detecting single and double click for headset button in my broadcast receiver:
int d = 0;
@Override
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:
if (action == KeyEvent.ACTION_DOWN) {
d++;
Handler handler = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
Toast.makeText(context, "single click!", Toast.LENGTH_SHORT).show();
d = 0;
}
};
if (d == 1) {
handler.postDelayed(r, 500);
} else if (d == 2) {
d = 0;
Toast.makeText(context, "double click!", Toast.LENGTH_SHORT).show();
}
}break;
}
abortBroadcast();
}
但它只是检测到单一的点击。两个单一的点击,而不是双击。哪里的问题?
but it just detects single click. Two single click instead of double click. Where's the problem?
推荐答案
正确的解决方法:
static int d = 0;
@Override
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:
if (action == KeyEvent.ACTION_DOWN) {
d++;
Handler handler = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
// single click *******************************
if (n_click == 1) {
Toast.makeText(context, "single click!", Toast.LENGTH_SHORT).show();
}
// double click *********************************
if (n_click == 2) {
Toast.makeText(context, "Double click!!", Toast.LENGTH_SHORT).show();
}
d = 0;
}
};
if (d == 1) {
handler.postDelayed(r, 500);
}
}break;
}
abortBroadcast();
}
这篇关于耳机按钮双击在安卓的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文