A. 怎样调节android系统音量的最大值
定义:增加最大音量限制,仅限于安卓手机注意:可能导致声音破音方法:进入手机拨号界面输入*#*#3646633#*#*这样可以进入工程模式下Audio里loudspeakerMode里的RingMAXVol最大可以改到160建议:不要修改到160,本人修改到155,到
B. Android的framework层是如何进行音量调整的
调整音量的过程首先通过AudioManager间接调用了AudioService的adjustStreamVolume方法。音量调整大致分为两步:第一步是检查当前的模式(如Ring模式)是否需要改变,如果不需要改变模式,当前模式应为正常模式(Normal mode),则会进行音量调整。
检查模式是否需要调整的工作由checkForRingerModeChange(oldIndex, direction)方法完成,而音量调整则通过streamState.adjustIndex(direction)实现。具体代码可参考/framework/base/media/java/android/media/AudioService.java中的public void adjustStreamVolume(int streamType, int direction, int flags)方法。该方法首先检查模式是否需要调整,之后进行音量调整。
调整音量完成后,AudioService会做两件事:一是通过mVolumePanel.postVolumeChanged(streamType, flags)向用户展示音量调整的结果;二是通过sendVolumeUpdate(streamType)广播音量改变的系统事件。
音量调整功能与用户界面相关联的两部分是/framework/base/core/java/android/view/VolumePanel.java和/framework/base/services/java/com/android/server/status/StatusBarPolicy.java。VolumePanel负责向用户展示音量变化的提示信息,每次AudioService通过向VolumePanel发送一系列消息来驱动这些提示信息的显示。
StatusBarPolicy则负责在静音模式(silent mode)和振动模式(vibrate mode)下,在状态栏(status bar)的右侧显示一个代表相应模式意义的图标。系统启动后,StatusBarPolicy会注册一个Receiver,它可以接收很多种广播事件,其中包括AudioService在每次完成模式和音量更新后发出的两个广播事件:AudioManager.RINGER_MODE_CHANGED_ACTION和AudioManager.VIBRATE_SETTING_CHANGED_ACTION。
C. 如何修改Android5.1系统音量大小
1. 直接修改系统层默认的声音大小
在系统代码frameworks/base/media/java/android/media/AudioService.java的开头定义了两个数组,一个MAX_STREAM_VOLUME这里面定义了各种声音的最大值(最大值不是100,所以需要AudioManager.getStreamMaxVolume(type)来获取各个音量的最大值),然后进行设置。
还定义了一个数组DEFAULT_STREAM_VOLUME这里面则和MAX_STREAM_VOLUME里定义的顺序是一样,表明了各种声音的默认的大小。此块代码如下:
/** @hide Maximum volume index values for audio streams */
privatestaticint[] MAX_STREAM_VOLUME =newint[] {
5,// STREAM_VOICE_CALL
7,//