Android 通话:后台通话过程中锁屏解锁,发现听筒内存在锁屏提示音

【系统版本】:T0316

【 HW 】:p1

【测试前提】:1.卡1插入移动4G卡

【测试步骤】:1.呼入或呼出一通来电,接听;

2.按home返回后台,锁屏解锁查看。

【测试结果】:1.后台通话过程中锁屏解锁,发现听筒内存在锁屏提示音

【预期结果】:1.通话过程中不应存在锁屏提示音

【概 率】:必现

solution:

修改文件:./frameworks/av/services/audiopolicy/AudioPolicyManager.cpp

status_t AudioPolicyManager::checkAndSetVolume(audio_stream_type_t stream,
                                                   int index,
                                                   audio_io_handle_t output,
                                                   audio_devices_t device,
                                                   int delayMs,
                                                   bool force)
{
    ALOGD(" checkAndSetVolume stream = %d index = %d output = %d device = 0x%x delayMs = %d force = %d"
        ,stream,index,output,device,delayMs,force);
    // do not change actual stream volume if the stream is muted
    if (mOutputs.valueFor(output)->mMuteCount[stream] != 0) {
        ALOGVV("checkAndSetVolume() stream %d muted count %d",
              stream, mOutputs.valueFor(output)->mMuteCount[stream]);
        return NO_ERROR;
    }
    //add start
    if(stream == AUDIO_STREAM_SYSTEM && isInCall())
        index=0;
    //add end

    // do not change in call volume if bluetooth is connected and vice versa
    if ((stream == AUDIO_STREAM_VOICE_CALL &&
            mForceUse[AUDIO_POLICY_FORCE_FOR_COMMUNICATION] == AUDIO_POLICY_FORCE_BT_SCO) ||
        (stream == AUDIO_STREAM_BLUETOOTH_SCO &&
                mForceUse[AUDIO_POLICY_FORCE_FOR_COMMUNICATION] != AUDIO_POLICY_FORCE_BT_SCO)) {
        ALOGD("checkAndSetVolume() cannot set stream %d volume with force use = %d for comm",
             stream, mForceUse[AUDIO_POLICY_FORCE_FOR_COMMUNICATION]);
        return INVALID_OPERATION;
    }
    //..................
}

可以添加代码

if(stream == AUDIO_STREAM_SYSTEM && isInCall())
        index=0;

过滤掉系统声音可以对这个问题进行规避

时间: 2024-10-18 21:34:10

Android 通话:后台通话过程中锁屏解锁,发现听筒内存在锁屏提示音的相关文章

【10.2.3】ArcGIS Runtime for Android搭建开发环境过程中问题详解

一.Visual Studio Ultimate2012安装过程问题 1.问题描述 安装完成后,您将看到一条消息,指示安装程序已完成,但并不是所有的功能具有已正确安装,以及以下警告消息: Microsoft Web Deploy 3.0 所需的证书不在有效期内根据当前系统时钟或签名文件中的时间戳验证时. 2.解决方案 修改电脑系统时间为2013年7月,断网后重新安装,成功后再联网. Visual Studio Ultimate2012激活密钥:RBCXF-CVBGR-382MK-DFHJ4-C6

Android 开发工具使用过程中要注意的问题

1.关于9patch的使用 9patch用的画线用鼠标左键,取消画线用要按住shift键再加鼠标左键. 画9patch图的时候一定要把四周都加上,否则不正常显示 Android 开发工具使用过程中要注意的问题

android 反编译 混淆过程中注意事项

此文源自组内成员分享的PPT,其他成员的文档由于没有得到授权,暂不公开. 本文命令如果没有特殊注明,均为windows 7环境. 本文只涉及大概的知识点,不涉及具体的细节,需要注意. 反编译 apktool 可反编译资源文件(xml,点九图)以及代码为smali代码 使用命令:apktool d xxx.apk output_filepath dex2jar 反编译dex文件(解压apk获得的classes.dex)为jar 使用命令:dex2jar xxx.dex jd-gui 查看jar文件

SQL Server 2005 sa登录失败。已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。

SQL Server 2005 Express版 用户 'sa' 登录失败.该用户与可信 SQL Server 连接无关联.提示错误:已成功与服务器建立连接 但是在登录过程中发生错误. provider 共享内存提供程序 error 0 管道的另一端上无任何进程. 解决方案: 1.首先选中服务器(右键)->属性->安全性->服务器身份验证修改为"SQL SERVER和WINDOWS身份验证模式"2.其次展开服务器下面的"安全性"文件夹->登陆

UIActionSheet关闭动画过程中调用delegate = nil 导致的内存泄露

UIActionSheet在动画期间(ActionSheet button点击之后,到didDismissWithButtonIndex调用完成之前)设置delegate为空会导致delegate无法释放. 先来看个例子: 例子中创建一个UIActionSheet,并在按钮点击之后0.1秒(关闭动画结束前)设置delegate = nil. #import "LIViewController.h" @class UIActionSheetDelegateImpl; static UIA

Android EditText的使用过程中遇到的问题

一开始EditeText就聚焦等待输入,光标闪烁. 解决方法:需要让父控件获取焦点. android:focusable="true" android:focusableInTouchMode="true" 去除默认的边框,在4.0下面就是EditText下面那条线. 解决方法:这个是因为EditText的背景,所以只需要替换它的背景. android:background="@null" 设置了默认显示的提示信息后(例如上面的 请输入关键字)点

Android studio在使用过程中常见的问题及解决方法(不定期更新)

Q1:studio开启的时候卡在进度条里 一般而言,android studio在进入界面之前都会对你当前的sdk版本及其内容进行检查,尤其是在第一次进入的时候---如果你没有翻墙,此时就算你有完整的sdk也是无法完成这个进度条的,因为它无法从google上获取最新的sdk列表和本地进行比对!!! 此时的进度条上的 title:   Fetching Android SDK component information A1: 在android studio的安装目录下的bin下找到 idea.p

android源码下载过程中错误及解决办法

使用 python ./repo sync -f同步,可自动修复同步错误的文件 设置shell代理$ export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>$ export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:&

尝试用不同语言写简单题的过程中的一些小发现

Python: python2中的sort函数是允许传入cmp函数的 1 def comp(x, y): 2 return x - y 3 a = [3, 2, 1] 4 a.sort(comp) 与我们常用的c++的cmp函数类似 但是python3中取消了cmp函数的支持,sort如下 sorted(iterable,key=None, reverse=False) key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字.默认值为None . 1 def comp