Solo hay modo de manos libres para hacer y recibir llamadas, y el teléfono no se puede cambiar. El modo manos libres predeterminado, puede cambiar el auricular.

Solo modo manos libres, no se puede cambiar de auricular:

proveedor/mediatek/propietario/paquetes/servicios/Telecomm/src/com/android/server/telecom/CallAudioRouteStateMachine.java

En el constructor CallAudioRouteStateMachine

switch (earpieceControl) {
           case EARPIECE_FORCE_DISABLED:
                mDoesDeviceSupportEarpieceRoute= false;
                break;
           case EARPIECE_FORCE_ENABLED:
                /*/tyd.yantao 20230105 onlyloudspeak
                mDoesDeviceSupportEarpieceRoute= true;
                //*/
                mDoesDeviceSupportEarpieceRoute =false;
                //*/
                break;
           default:
                /*/tyd.yantao 20230105 onlyloudspeak
                mDoesDeviceSupportEarpieceRoute= checkForEarpieceSupport();
                //*/
                mDoesDeviceSupportEarpieceRoute= false;
                //*/
       }

¡El teléfono no es compatible! El efecto real es que no se puede hacer clic en el altavoz en la interfaz del teléfono y no se puede cambiar al auricular.

El modo manos libres predeterminado, puede cambiar el auricular:

proveedor/mediatek/propietario/paquetes/servicios/ Telecomm/src/com/android/server/telecom/CallsManager.java

En el lugar vacío público Llamada saliente (método

código fuente

call.setStartWithSpeakerphoneOn(speakerphoneOn|| useSpeakerForVideoCall
     ||(useSpeakerWhenDocked && useSpeakerForDock) || useSpeakerForTablet);

Simplemente cambie este parámetro a verdadero. Tenga en cuenta que este método es aplicable al escribir

En el caso de responder:

En este voidprocessIncomingCallIntent(método

Es mejor agregar esa oración después de init

Simplemente agregue después de call.initAnalytics();

call.setStartWithSpeakerphoneOn(true);

おすすめ

転載: blog.csdn.net/youthking1314/article/details/128913832