【Qualcomm高通音频】在设备没有听筒时,如何强制开启免提通话模式?
由于类似平板、贩卖机、车载等产品定义上都没有听筒这种音频设备,因此会经常遇到这样一个需求:强制免提。
以下是修改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高通音频】在设备没有听筒时,如何强制开启免提通话模式?相关推荐
- 【Qualcomm高通音频】当内部Codec和外部Codec上都有麦克风输入,如何做到灵活切换内部外部Codec上的麦克风进行录音呢?
最近遇到一个项目,既用到高通PMU芯片内置的Codec接了麦克风,也通过外部I2S总线外接了两个麦克风. 详细沟通后,了解到,在普通录音的使用场景中,客户要求可以通过安卓原生api任意切换内部Code ...
- 【Qualcomm高通音频】如何抓去各种音频日志?
1.logcat Log adb logcat -b main -b system -v threadtime > /data/logcat.txt 2.kernel Log / ...
- 【Qualcomm高通音频】外部Codec调试流程_ES7243E
一. 调试大纲 调试正式开始之前,想办法获取以下信息:硬件设计原理图/Codec参考驱动代码/FAE联系方式. 1. 从硬件设计原理图,我们要获取到Codec芯片和CPU通过什么接口连接,包括数据传输 ...
- 【Qualcomm高通音频】如何使用QXDM、QCAT、CoolEditor音频日志抓取、解析和分析?
一. 使用QXDM抓取音频日志 使用步骤如下:(已抓取录音日志为例) 确保qxdm和qpst软件已成功安装且qxdm软件已激活成功,把设备连接电脑上. 点击左上角菜单栏Options-->Com ...
- 【Qualcomm高通音频】如何区分配置ECM驻极体麦克风和MEMS硅麦克风
如何对MEMS麦克风进行调试 如今MEMS麦克风正逐渐取代音频电路中的驻极体电容麦克风(ECM).ECM和MEMS这两种麦克风的功能相同,但各自和系统其余部分之间的连接却不一样.如今MEMS麦克风正逐 ...
- 【Qualcomm高通音频】MSM8953安卓7如何配置QUIN MI2S为从模式?
1. pinctrl配置 高通平台配置一组I2S一般对应四个或者六个GPIO, QUIN MI2S对应GPIO88 GPIO91 GPIO92 GPIO93 对应代码文件为:kernel/msm-3. ...
- 【Qualcomm高通音频】如何使用QXDM、QCAT音频数据抓取
一.使用qxdm抓取日志和数据 抓取所有日志 1.连接单板 2.打开Item view,Item view是所有的日志 3.选择File中的Load Default Configuration加载默认 ...
- 【Qualcomm高通音频】Microphone 调试记录
1.XML配置 1.1 主MIC的XML路径配置以及对应的原理图 <path name="speaker-mic"> <path name=&qu ...
- 【Qualcomm高通音频】Speaker 调试记录
1.tinymix log 检索 MI2S_RX Channels|RX1 MIX1 INP1|RX2 MIX1 INP1|RDAC2 MUX|HPHL|HPHR|Ext Spk Switch 2.X ...
最新文章
- php如何添加超链接,如何使用phpcms添加超链接
- go build命令详解
- [MATLAB调试笔记]Field plot (Ex,Ey,Ez,By,Bz)
- STM32F4 HAL库开发 -- 再识
- 什么是python编程例子_案例详解:优化Python编程的4个妙招
- 【Python3】Tensorflow_Fasterrcnn训练自己数据集,Keras_Yolov3_GPU训练自己数据集
- sklearn自学指南(part15)--广义线性回归
- 经典排序算法(11)——计数排序算法详解
- mysqld命令相关介绍
- 解决maven项目jdbc报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- “北京链安”近日更名为“中科链安”
- JavaScript 精度问题以及JavaScript 浮点数陷阱及解决方案
- 5.7-多源复制搭建
- 软件随想--写牛B的代码
- 参考官方mysql自定义一个mysql sink connector
- java swing 界面字体大小_java swing 界面统一设置字体样式
- Protel 99SE汉化教程
- 地方时太阳时html源码,地方时、区时和世界时
- 从 0 基础到 10w 册数据分析书籍的畅销书作家
- chrome浏览器最小字体大小限制的解决方案
热门文章
- 基于html5的网上书店,基于web的网上书店的设计与实现
- 【调剂】厦门大学信息学院(特色化示范性软件学学院)2023年硕士研究生复试通知...
- XP 系统下载与安装
- djkk电子书内测价998元 限量3500台
- php ftp_mdtm,PHP ftp_mdtm() 函数
- 深入了解JVM---压缩指针
- Excel通过网站页面导入数据
- 稀疏矩阵的存储格式(Sparse Matrix Storage Formats)
- HC-05蓝牙模块主从配对设置步骤记录
- 计算机键盘上的f5的作用是,电脑键盘F1~F12原来是这样用的,只知道F5怎么用的话未免弱爆了...