微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt6735 按一下音量侧键将情景模式由震动调整为标准,关机再开机...

mt6735 按一下音量侧键将情景模式由震动调整为标准,关机再开机...

时间:10-02 整理:3721RD 点击:
[Audio Profile] 按一下音量侧键将情景模式由震动调整为标准,关机再开机,发现音量为0
[DESCRIPTION]
复现步骤:
1.按音量侧键将情景模式调整成震动;
2.再向上按一格变成标准,进入情景模式->音量->查看铃声音量为1格;
3.关机再开机,进入情景模式->音量->铃声音量为0格
[SOLUTION]
root Cause:
当手机从震动模式上调音量到标准模式,当前音量为1,google默认设计不会将当前音量值存储到DB里面,
导致重新开机后音量还是为震动模式时的0,至于为何google如此设计,目前不得而知。但是从参考机NOTE3上来看,也是存在同样的行为!
如果贵司需要修改请参考如下:
please modify the method setRingerModeInt in the file "base/media/java/android/media/AudioService.java",
Add the code between "// add code start" and "// add code end"
private void setRingerModeInt(int ringerMode, boolean persist) {
......
for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
if (isStreamMutedByRingerMode(streamType)) {
if (!isStreamAffectedByRingerMode(streamType) ||
ringerMode == AudioManager.RINGER_MODE_NORMAL) {
// ring and notifications volume should never be 0 when not silenced
// on voice capable devices
if ((mVoiceCapable &&
mStreamVolumeAlias[streamType] == AudioSystem.STREAM_RING)||
(!mVoiceCapable &&
mStreamVolumeAlias[streamType] == AudioSystem.STREAM_MUSIC)) {
synchronized (mStreamStates[streamType]) {
Set set = mStreamStates[streamType].mIndex.entrySet();
Iterator i = set.iterator();
while (i.hasNext()) {
Map.Entry entry = (Map.Entry)i.next();
if ((Integer)entry.getValue() == 0) {
entry.setValue(10);
}
}
}
// add code start
int streamVolumeAlias = mStreamVolumeAlias[streamType];
int device = getDeviceForStream(streamVolumeAlias);
VolumeStreamState streamState = mStreamStates[streamVolumeAlias];
sendMsg(mAudioHandler,
MSG_SET_DEVICE_VOLUME,
SENDMSG_QUEUE,
device,
0,
streamState,
0);
// add code end
}
mStreamStates[streamType].mute(null, false);
mRingerModemutedStreams &= ~(1 << streamType);
}

不稳定啊

mark1111

路过!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top