由于类似平板、贩卖机、车载等产品定义上都没有听筒这种音频设备,因此会经常遇到这样一个需求:强制免提。

以下是修改diff,请参考。

如果只是APK修改的话,可以参考:

diff --git a/packages/services/Telecomm/src/com/android/server/telecom/CallAudioManager.java b/packages/services/Telecomm/src/com/android/server/telecom/CallAudioManager.java
index 78a92eb..b87ffbb 100644
--- a/packages/services/Telecomm/src/com/android/server/telecom/CallAudioManager.java
+++ b/packages/services/Telecomm/src/com/android/server/telecom/CallAudioManager.java
@@ -379,7 +379,12 @@ public class CallAudioManager extends CallsManagerListenerBase {* @param route The new audio route to use. See {@link CallAudioState}.*/void setAudioRoute(int route) {
-        Log.v(this, "setAudioRoute, route: %s", CallAudioState.audioRouteToString(route));
+        Log.v(this, "setAudioRoute,before Changed route: %s", CallAudioState.audioRouteToString(route));
+        if(CallAudioState.ROUTE_EARPIECE == route || CallAudioState.ROUTE_WIRED_OR_EARPIECE  == route){
+      route = CallAudioState.ROUTE_SPEAKER;
+  }
+        Log.v(this, "setAudioRoute,after Changed route: %s", CallAudioState.audioRouteToString(route));switch (route) {case CallAudioState.ROUTE_BLUETOOTH:mCallAudioRouteStateMachine.sendMessageWithSessionInfo(

如果想一劳永逸的话,可以参考,以高通8953平台代码为例:

diff --git a/hardware/qcom/audio/configs/msm8953/audio_policy_configuration.xml b/hardware/qcom/audio/configs/msm8953/audio_policy_configuration.xml
old mode 100644
new mode 100755
index ea4b140..e016954
--- a/hardware/qcom/audio/configs/msm8953/audio_policy_configuration.xml
+++ b/hardware/qcom/audio/configs/msm8953/audio_policy_configuration.xml
@@ -49,7 +49,6 @@<!-- Primary Audio HAL --><module name="primary" halVersion="2.0"><attachedDevices>
-                <item>Earpiece</item><item>Speaker</item><item>Telephony Tx</item><item>Built-In Mic</item>
@@ -171,10 +170,6 @@<devicePorts><!-- Output devices declaration, i.e. Sink DEVICE PORT -->
-                <devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
-                   <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
-                            samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
-                </devicePort><devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address=""><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -255,8 +250,6 @@</devicePorts><!-- route declaration, i.e. list all available sources for a given sink --><routes>
-                <route type="mix" sink="Earpiece"
-                       sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/><route type="mix" sink="Speaker"sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/><route type="mix" sink="Wired Headset"

【Qualcomm高通音频】在设备没有听筒时,如何强制开启免提通话模式?相关推荐

  1. 【Qualcomm高通音频】当内部Codec和外部Codec上都有麦克风输入,如何做到灵活切换内部外部Codec上的麦克风进行录音呢?

    最近遇到一个项目,既用到高通PMU芯片内置的Codec接了麦克风,也通过外部I2S总线外接了两个麦克风. 详细沟通后,了解到,在普通录音的使用场景中,客户要求可以通过安卓原生api任意切换内部Code ...

  2. 【Qualcomm高通音频】如何抓去各种音频日志?

    1.logcat Log     adb logcat -b main -b system -v threadtime > /data/logcat.txt 2.kernel Log     / ...

  3. 【Qualcomm高通音频】外部Codec调试流程_ES7243E

    一. 调试大纲 调试正式开始之前,想办法获取以下信息:硬件设计原理图/Codec参考驱动代码/FAE联系方式. 1. 从硬件设计原理图,我们要获取到Codec芯片和CPU通过什么接口连接,包括数据传输 ...

  4. 【Qualcomm高通音频】如何使用QXDM、QCAT、CoolEditor音频日志抓取、解析和分析?

    一. 使用QXDM抓取音频日志 使用步骤如下:(已抓取录音日志为例) 确保qxdm和qpst软件已成功安装且qxdm软件已激活成功,把设备连接电脑上. 点击左上角菜单栏Options-->Com ...

  5. 【Qualcomm高通音频】如何区分配置ECM驻极体麦克风和MEMS硅麦克风

    如何对MEMS麦克风进行调试 如今MEMS麦克风正逐渐取代音频电路中的驻极体电容麦克风(ECM).ECM和MEMS这两种麦克风的功能相同,但各自和系统其余部分之间的连接却不一样.如今MEMS麦克风正逐 ...

  6. 【Qualcomm高通音频】MSM8953安卓7如何配置QUIN MI2S为从模式?

    1. pinctrl配置 高通平台配置一组I2S一般对应四个或者六个GPIO, QUIN MI2S对应GPIO88 GPIO91 GPIO92 GPIO93 对应代码文件为:kernel/msm-3. ...

  7. 【Qualcomm高通音频】如何使用QXDM、QCAT音频数据抓取

    一.使用qxdm抓取日志和数据 抓取所有日志 1.连接单板 2.打开Item view,Item view是所有的日志 3.选择File中的Load Default Configuration加载默认 ...

  8. 【Qualcomm高通音频】Microphone 调试记录

    1.XML配置 1.1 主MIC的XML路径配置以及对应的原理图 <path name="speaker-mic">         <path name=&qu ...

  9. 【Qualcomm高通音频】Speaker 调试记录

    1.tinymix log 检索 MI2S_RX Channels|RX1 MIX1 INP1|RX2 MIX1 INP1|RDAC2 MUX|HPHL|HPHR|Ext Spk Switch 2.X ...

最新文章

  1. php如何添加超链接,如何使用phpcms添加超链接
  2. go build命令详解
  3. [MATLAB调试笔记]Field plot (Ex,Ey,Ez,By,Bz)
  4. STM32F4 HAL库开发 -- 再识
  5. 什么是python编程例子_案例详解:优化Python编程的4个妙招
  6. 【Python3】Tensorflow_Fasterrcnn训练自己数据集,Keras_Yolov3_GPU训练自己数据集
  7. sklearn自学指南(part15)--广义线性回归
  8. 经典排序算法(11)——计数排序算法详解
  9. mysqld命令相关介绍
  10. 解决maven项目jdbc报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  11. “北京链安”近日更名为“中科链安”
  12. JavaScript 精度问题以及JavaScript 浮点数陷阱及解决方案
  13. 5.7-多源复制搭建
  14. 软件随想--写牛B的代码
  15. 参考官方mysql自定义一个mysql sink connector
  16. java swing 界面字体大小_java swing 界面统一设置字体样式
  17. Protel 99SE汉化教程
  18. 地方时太阳时html源码,地方时、区时和世界时
  19. 从 0 基础到 10w 册数据分析书籍的畅销书作家
  20. chrome浏览器最小字体大小限制的解决方案

热门文章

  1. 基于html5的网上书店,基于web的网上书店的设计与实现
  2. 【调剂】厦门大学信息学院(特色化示范性软件学学院)2023年硕士研究生复试通知...
  3. XP 系统下载与安装
  4. djkk电子书内测价998元 限量3500台
  5. php ftp_mdtm,PHP ftp_mdtm() 函数
  6. 深入了解JVM---压缩指针
  7. Excel通过网站页面导入数据
  8. 稀疏矩阵的存储格式(Sparse Matrix Storage Formats)
  9. HC-05蓝牙模块主从配对设置步骤记录
  10. 计算机键盘上的f5的作用是,电脑键盘F1~F12原来是这样用的,只知道F5怎么用的话未免弱爆了...