我正在開發耳機按鈕控制器,並使用廣播接收器來檢測耳機按鈕按壓。如何檢測耳機按鈕雙擊HTC手機與廣播接收器?
((AudioManager) getSystemService(AUDIO_SERVICE)).registerMediaButtonEventReceiver(new ComponentName(getPackageName(), MediaButtonIntentReceiver.class.getName()));
onReceive
方法:
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) {
long time = SystemClock.uptimeMillis();
// double click
if (time - sLastClickTime < DOUBLE_CLICK_DELAY)
// do something
Toast.makeText(context, "BUTTON PRESSED DOUBLE!",
Toast.LENGTH_SHORT).show();
// single click
else {
// do something
Toast.makeText(context, "BUTTON PRESSED!",
Toast.LENGTH_SHORT).show();
}
sLastClickTime = time;
}
break;
}
abortBroadcast();
}
,它工作正常。 問題是在HTC Android手機它不能收到雙擊。雙擊耳機按鈕時,默認情況下會撥打您的最後一個電話,並且我無法在我的應用程序中檢測到雙擊。 有什麼辦法可以禁用android API的這個動作嗎?
我試着將我的廣播接收機的優先級設置爲一個很大的數字,但它沒有工作。 即使我試圖在電話的通話記錄中放置假/無效呼叫,但我無法做到這一點。 任何想法我該如何解決這個問題?
您是否在HTC或第一個單擊中獲得了點擊? –
@Babibu不只是第一個 – Mehrdad