how to enable & disable LoudSpekaker during a running call via Android java programing

54 Views Asked by At

Call Acivity.class

        loudSpk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (isSpkOn) {
                    CallManager.speakerCall(false);
                    Toast.makeText(CallActivity.this, "SPK OFF", Toast.LENGTH_SHORT).show();
                    isSpkOn = false;
                }
                else{
                    CallManager.speakerCall(true);
                    Toast.makeText(CallActivity.this, "SPK ON", Toast.LENGTH_SHORT).show();
                    isSpkOn = true;
                }

            }
        });

Call Manager.class

import android.telecom.InCallService;
@SuppressLint("StaticFieldLeak")
public static InCallService inCallService;
public static void speakerCall(boolean isSpeakerOn) {
    if (isSpeakerOn){
        inCallService.setAudioRoute(CallAudioState.ROUTE_SPEAKER);
        Toast.makeText(inCallService, "Speaker on", Toast.LENGTH_SHORT).show();
    }
    else {
        inCallService.setAudioRoute(CallAudioState.ROUTE_EARPIECE);
        Toast.makeText(inCallService, "Speaker off", Toast.LENGTH_SHORT).show();
    }

I create a default custom dialer, but as I tap on mute button during an active call, my call controls move from my default custom dialer to system default dialer.

0

There are 0 best solutions below