拨打接听电话只有免提模式,无法切换听筒。默认免提模式,可以切换听筒。

只有免提模式,无法切换听筒:

vendor/mediatek/proprietary/packages/services/Telecomm/src/com/android/server/telecom/CallAudioRouteStateMachine.java

在构造方法中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;
                //*/
       }

就不支持听筒!实际效果就是电话界面就点不了那个喇叭,无法切换成听筒

默认免提模式,可以切换听筒:

vendor/mediatek/proprietary/packages/services/ Telecomm/src/com/android/server/telecom/CallsManager.java

在publicvoid placeOutgoingCall(方法中

源码有

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

把这句参数改为true就可以。注意这个方法是打出去的时候适用

接听情况下:

在这个voidprocessIncomingCallIntent(方法中

最好是在init之后加入那句话

就是在call.initAnalytics();之后加入

call.setStartWithSpeakerphoneOn(true);

猜你喜欢

转载自blog.csdn.net/youthking1314/article/details/128913832