修改功能的方案为MTK的源码,其他方案源码仅供参考。

1.在mtk源码当中有专门的宏控进行开关一些功能,就像这次的打电话面提功能。在device.mk文件当中可以搜到这个MTK_TB_APP_CALL_FORCE_SPEAKER_ON,当它为yes的时候通话免提只是拨打的时候免提,接听的时候并不是免提状态。

--- a/alps/device/mediateksample/xx/ProjectConfig.mk
+++ b/alps/device/mediateksample/xx/ProjectConfig.mk
@@ -539,6 +539,7 @@ MTK_SMART_CHARGING = noMTK_ADSP_VA_SUPPORT = noMTK_CAM_BSS_SUPPORT = 0MTK_LK_VERSION = lk
+MTK_TB_APP_CALL_FORCE_SPEAKER_ON=yes

2.因接听的时候并不是免提状态,所以有以下修改。

第一种方法:

--- a/alps/frameworks/base/telecomm/java/android/telecom/InCallService.java
+++ b/alps/frameworks/base/telecomm/java/android/telecom/InCallService.java
@@ -40,6 +40,10 @@ import com.android.internal.telecom.IInCallService;import java.util.Collections;import java.util.List;+import android.telecom.CallAudioState;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
+import android.content.Context;/*** This service is implemented by an app that wishes to provide functionality for managing* phone calls.
@@ -230,6 +234,40 @@ public abstract class InCallService extends Service {private static final int MSG_ON_HANDOVER_FAILED = 12;private static final int MSG_ON_HANDOVER_COMPLETE = 13;+       //Added by lwz start
+       @Override
+         public void onCreate() {
+                super.onCreate();
+               MyPhoneStateListener phonehoneStateListener=new MyPhoneStateListener();
+               TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+               mTelephonyManager.listen(phonehoneStateListener,PhoneStateListener.LISTEN_CALL_STATE);
+         }
+
+               @Override
+         public void onDestroy() {
+               super.onDestroy();
+         }
+
+          private class MyPhoneStateListener extends PhoneStateListener{
+               @Override
+               public void onCallStateChanged(int state, String incomingNumber) {
+                 switch (state) {
+                 case TelephonyManager.CALL_STATE_IDLE:
+                   setAudioRoute(CallAudioState.ROUTE_EARPIECE);
+                   break;
+                 case TelephonyManager.CALL_STATE_RINGING:
+                   setAudioRoute(CallAudioState.ROUTE_SPEAKER);
+                   break;
+                 case TelephonyManager.CALL_STATE_OFFHOOK:
+                 setAudioRoute(CallAudioState.ROUTE_SPEAKER);
+                 default:
+                   break;
+                 }
+                 super.onCallStateChanged(state, incomingNumber);
+               }
+         }
+       //Added by lwz end
+       /** Default Handler used to consolidate binder method calls onto a single thread. */private final Handler mHandler = new Handler(Looper.getMainLooper()) {@Override

第二种方法:

index fe2a32b..101b15c 100644
--- a/alps/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
+++ b/alps/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp
@@ -295,7 +295,8 @@ DeviceVector Engine::getDevicesForStrategyInt(legacy_strategy strategy,AUDIO_DEVICE_OUT_AUX_DIGITAL, AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET});if (!devices.isEmpty()) break;}
-            devices = availableOutputDevices.getDevicesFromType(AUDIO_DEVICE_OUT_EARPIECE);
+            //devices = availableOutputDevices.getDevicesFromType(AUDIO_DEVICE_OUT_EARPIECE);
+            devices = availableOutputDevices.getDevicesFromType(AUDIO_DEVICE_OUT_SPEAKER);break;case AUDIO_POLICY_FORCE_SPEAKER:

mtk android 11接打电话默认免提功能相关推荐

  1. 高通Android 13默认切换免提功能

    1.测试部反馈 由于平板本身没有听筒功能 因此考虑工厂直接切换到免提功能 2.修改路径 frameworks/av/services/audiopolicy/enginedefault/src/Eng ...

  2. Android 8.1拨号如何实现默认免提

    客户需求说拨号默认免提,如何实现 alps\vendor\mediatek\proprietary\packages\services\Telecomm\src\com\android\server\ ...

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

    只有免提模式,无法切换听筒: vendor/mediatek/proprietary/packages/services/Telecomm/src/com/android/server/telecom ...

  4. android 拨打紧急号码,通话时开启免提功能实现

    对应拨打电话只需要调用ACTION_CALL加对应电话号码即可如下: void callPhone(){ Intent intent = new Intent(Intent.ACTION_CALL,U ...

  5. MTK Android 11.0:充电低电指示灯会被未读消息信号灯灭掉,无优先级控制。

    MTK Android 11.0:充电低电指示灯会被未读消息信号灯灭掉,无优先级控制: 1.电池充电.低电状态提示(红绿双色).(LIGHT_ID_BATTERY) 小于15%时: A 正在充电 亮红 ...

  6. android11beta支持什么手机,Android 11 Beta1发布,新增多种功能,网友:Android基于 Flyme...

    原标题:Android 11 Beta1发布,新增多种功能,网友:Android基于 Flyme 6.11日消息,谷歌于今日凌晨正式推送了 Android 11 Beta 1 版系统,不仅新增了可悬浮 ...

  7. Android拨打接听电话自动免提

    权限: <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-p ...

  8. [CF.Skills]Windows Mobile如何编程实现免提功能

    摘要:本文阐述了如何在Windows mobile的设备上使用托管代码在来电时触发扬声器,间接实现免提的功能 Keywords Windows Mobile,.NET CompactFramework ...

  9. android 打开免打扰模式,Android 6.0设置模块免打扰功能浅析

    免打扰功能的入口在NotificationSettings中, 点击列表项跳转到ZenModeSettings.java android:title="@string/zen_mode_se ...

最新文章

  1. svn 目录结构 trunk java_如何彻底删除SVN中的文件和文件夹(附恢复方法)
  2. [Java] grails 安装手记
  3. nginx fastcgi python_linux下nginx+python+fastcgi部署总结(django版)
  4. bios是固定在微型计算机上的一块RoM,计算机硬件笔试试题
  5. 全国大学生数学建模竞赛历年赛题及优秀论文(链接见ping论)
  6. matlab牛顿插值法
  7. Qt:Label(添加文字、图片、gif动图、网站链接)、添加文件资源、添加LCD显示、添加进度条
  8. 安装配置管理 之 NVIDIA nForce Linux Drivers 集成声网卡和声卡的安装说明
  9. c语言笛卡尔心形函数,笛卡尔心形函数故事
  10. centos离线安装(升级)nvidia显卡驱动及cuda10.2
  11. Latex小写字母花体方法
  12. portknocking(端口试探)简介
  13. python- selenium-快眼看书-林深终有路
  14. Web服务器群集——编译安装Apache构建虚拟主机
  15. Access数据类型和SQL数据类型
  16. 传统量化金融时序模型(ARMA,ml-XGBoost,dl-LSTM)
  17. STI、LOD与WPE概念:形成机理及对电路设计的影响
  18. Some/IP和DoIP有什么区别?
  19. 保持屏幕唤醒的几种方式总结
  20. 【广东开放大学(广东理工职业学院)主办】第二届计算机图形学、人工智能与数据处理国际学术会议(ICCAID 2022)

热门文章

  1. javaBean与Map之间的转换工具
  2. 第1章-数据探索(1)-数据预处理
  3. 在网页上添加微信分享按钮,关注微信号等按钮
  4. BSOJ 1480 贪吃的九头龙
  5. python中OSError: [Errno 22] Invalid argument: ‘/\u202aC:/Users/76189/Desktop/donations.csv‘
  6. 论文阅读1:QUBIC2 A novel and robust biclustering algorithm for analyses
  7. Lambda表达式的几种使用方式
  8. kotlin 设计 logo集锦
  9. eth geth 安卓_零基础学习以太坊开发--安装和使用以太坊客户端geth
  10. 外网访问Openwrt路由器管理Web及SSH