Detect bluetooth headphone's buttons click

Viewed 111

How can i detect bluetooth headphones buttons press i tried every possible code and it does not work. I am not building media app just need to detect headphone buttons and print in console.

I tried:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
        Toast.makeText(MainActivity.this,  "volume down" ,Toast.LENGTH_SHORT).show();
    }
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP){
        Toast.makeText(MainActivity.this,  "volume up" ,Toast.LENGTH_SHORT).show();
    }
    if (keyCode == KeyEvent.KEYCODE_MUTE){
        Toast.makeText(MainActivity.this,  "volume mute" ,Toast.LENGTH_SHORT).show();
    }
    return false;
}

Also:

public class MediaButtonIntentReceiver extends BroadcastReceiver {

    public MediaButtonIntentReceiver() {
        super();
    }

    @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();
        if (action == KeyEvent.ACTION_DOWN) {
            Log.d("aaaaaa","aaaaaaaaaaaaaaaaaaaaaaaaa");
            Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show();
        }
        abortBroadcast();
    }

with:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



    IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);//"android.intent.action.MEDIA_BUTTON"
    MediaButtonIntentReceiver r = new MediaButtonIntentReceiver();
    filter.setPriority(1000); //this line sets receiver priority
    registerReceiver(r, filter);
}

None of that works, i tested on S21+ and JBL Tune BT560 headphones.

0 Answers
Related