我正在開發一個通話應用程序。所以我需要從藍牙設備中選擇/掛斷電話。但我無法從藍牙耳機獲得按鍵事件。 我曾嘗試廣播和音頻管理器,但只獲得播放/暫停,前和下一個按鈕回調。檢測藍牙耳機通話按鈕按下android
public class MediaButtonIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
KeyEvent event = (KeyEvent) intent .getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
if (event.getAction() == KeyEvent.ACTION_DOWN) {
//context.sendBroadcast(new Intent(Intents.ACTION_PLAYER_PAUSE));
}
}
}
}
menifest是
<receiver android:name=".net.MediaButtonIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
我只需要得到該事件時,我的活動是活的,所以我必須使用onKeyDown和活動的dispatchKeyEvent方法太多,但似乎沒有任何工作。它給了我相同的結果和以前。 必須有一個辦法,導致系統手機應用程序獲取啓動撥號程序的此事件。請建議我一些有用的方法來做到這一點。
Thx的回覆看起來像是閱讀文檔後正確的方式。但是我沒有在dispatchKeyEvent中獲取這個事件回調。您能否告訴我如何捕獲這兩個事件 – ADM
無法在dispatchKeyEvent中獲取事件。你有沒有試過這段代碼?因爲我檢查它不工作 – ADM
@ADM是的,我在使用android 7.1的Android模擬器上的一個新項目中嘗試了這一點。我使用'adb shell input keyevent 5'來模擬呼叫按鈕。在這種情況下,5是呼叫按鈕的KeyCode。 –