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.