android - Handle MEDIA_BUTTON not working when start bluetoothSCO -


i'm implement audio recorder bluetooth speaker. bluetooth speaker have media button such play/pause, next, previous. trigger play button record , press again stop. problem when using maudiomanager.startbluetoothsco() using bluetooth microphone record, media_button receiver not working anymore, can't receive event.

below sourcecode: register receiver:

    ((audiomanager) getsystemservice(audio_service)).registermediabuttoneventreceiver(             new componentname(                     this,                     mediabuttonreceiver.class.getname())); 

mediabuttonreceiver:

@override     public void onreceive(context context, intent intent) {         log.d("mediabuttonreceiver", "onreceive media button!" );         keyevent key = (keyevent) intent.getparcelableextra(intent.extra_key_event);         log.d("mediabuttonreceiver", "media button! action: [" + key.getaction() + "] key code: [" + key.getkeycode() + "]");         if(key.getaction() == keyevent.action_up) {             int action = fromkeycodetoaction(key.getkeycode());             switch (action) {                 case action_start_stop_talking:                     logutils.logd("mediabuttonreceiver", "action start/stop");                     startstoprecord();                     break; 

... handle logic in hear check current status record or not. , trigger service start or stop record. , code start record.

if (isbluetoothheadsetconnected) {                 logutils.logi("bluetooth", "record using headset");                 //we start recording when audio state connected                 mcontext.registerreceiver(mbluetoothaudiostatebroadcastreceiver, mbluetoothaudiostateintentfilter);                 logutils.logi("bluetooth", "startbluetoothsco");                 maudiomanager.startbluetoothsco();                 maudiomanager.setbluetoothscoon(true);             } else {                 logutils.logi("bluetooth", "record ");                 maudiomanager.setmode(audiomanager.mode_normal);                 maudiomanager.setbluetoothscoon(false);                 handlestartrecordjob();             } 

if remove startbluetoothsco(), receiver work normal, app using device mic instead of bluetooth speaker. if don't remove, receiver not working anymore , can't stop recorder. have solution work arround?


Comments