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);