如何修改情景模式的默认值?
1.情景模式下菜单下分预定义的几种情景模式(标准/静音/会议/户外)
2.每个情景模式点进去,分几大类:常规/音量/来电/通知/系统设置
一.针对每个情景模式的默认值修改:
1,默认铃声是统一在alps/build/target/product/core.mk文件中设置,其中ro.config.notification_sound表示通知的默认铃声,ro.config.ringtone表示语音来电和视频来电的铃声:
PRODUCT_PROPERTY_OVERRIDES:=\
ro.config.notification_sound=Proxima.ogg\
ro.config.ringtone=Backroad.ogg
ro.config.alarm_alert=Alarm_Classic.ogg\
L版本和M版本中,ro.config.ringtone和ro.config.notification_sound位于build/target/product/full_base.mk
2,情景模式中的其他设定参考到alps/mediate/framework/base/media/audio/java/com/mediate/audioprofile/AudioProfileManager.java中的getDefaultState( )
public static AudioProfileState getDefaultState(String profileKey) {
if (null == sDEFAULTSTATES) {
if (mDefaultProfileStatesGetter != null) {
sDEFAULTSTATES = mDefaultProfileStatesGetter.getDefaultProfileStates();
}
if (null == sDEFAULTSTATES) {
sDEFAULTSTATES = new HashMap<Integer, AudioProfileState>(PREDEFINED_PROFILES_COUNT);
/** Default values of ringer volume for different audio profiles. */
final int DEFAULT_RINGER_VOLUME_GENERAL = 15; //8;
final int DEFAULT_RINGER_VOLUME_SILENT = 0;
final int DEFAULT_RINGER_VOLUME_MEETING = 0;
final int DEFAULT_RINGER_VOLUME_OUTDOOR = 15;
/** Default values of notification volume for different audio profiles. */
final int DEFAULT_NOTIFICATION_VOLUME_GENERAL = 15; //8;
final int DEFAULT_NOTIFICATION_VOLUME_SILENT = 0;
final int DEFAULT_NOTIFICATION_VOLUME_MEETING = 0;
final int DEFAULT_NOTIFICATION_VOLUME_OUTDOOR = 15;
/** Default values of alarm volume for different audio profiles. */
final int DEFAULT_ALARM_VOLUME_GENERAL = 15; //8;
final int DEFAULT_ALARM_VOLUME_SILENT = 0;
final int DEFAULT_ALARM_VOLUME_MEETING = 0;
final int DEFAULT_ALARM_VOLUME_OUTDOOR = 15;
1
)if语句表示判断是否有m
DefaultProfileStatesGetter
接口的实现,若没有,则默认设置在
getDeafultSte
中绿色框中配置,其中
DEFAULT_RINGER_VOLUME_GENERAL=4,
表
General Profile
的默认的铃声音量,以此类推,其他的默认值也是如此命名;
3,在AudioManager.java
注意:如果要修改Ringer、Notification和Alarm的默认音量,除了修改数组DEFAULT_STREAM_VOLUME中的对应数值,还需要按照上述第2步做同步修改,才能保证修改生效。
二,download bin到手机之后如果从来都没有进入到情景模式菜单修改过任何一个情景模式,则情景模式就不会synchronize 自己的设定到系统设定,因此这种情况若希望系统的默认设定和情景模式默认Active的(默认Active的是General Profile)的设定一致的话,可以修改如下系统的默认值来与前面所说的的情景模式的具体值相匹配:
alps/frameworks/base/packages/settingsprovider/res/valuse/Defaults.xml:
<bool name="def_haptic_feedback">true</bool>
<integer name="def_lockscreen_sound_enabled">1</integer>
<bool name="def_sound_effects_enabled">false</bool>
<bool name="def_dtmftone_enabled">true</bool>
如默认的active的情景模式是General,假设在前面设置了DEFAULT_DTMFTONE_GENERAL = false,则对应的系统的默认的dtmf如果要保持与情景模式一致,则需要设置def_dtmftone_enabled对应为true,若DEFAULT_SOUNDEFFECT_GENERAL=false,则对应的系统默认的sound effect的值如果保持与情景模式一致,则需要设置def_sound_effects_enabled为false。以此类推其他的设置。