如何设置在AP界面上,可以显示小区广播默认选择的语言
1、整个系统最多可支持30种小区广播语言。即使SIM卡或NVRAM里面没有预先配置小区广播的语言(DCS),我们系统里也会默认有支持20种小区广播的语言。它们的顺序分别是,并且根据ISO639标准,可以知道它们所代表的语言。
{
de: 德语
en: 英语
it: 意大利语
fr: 法语
es: 西班牙语
nl: 荷兰语
sv: 瑞典语
da: 丹麦语
pt: 葡萄牙语
fi: 芬兰语
no: 挪威语
el: 现代希腊语
tr: 土耳其语
hu: 匈牙利语
pl: 波兰语
cs: 捷克语
he: 希伯来语
ar: 阿拉伯语
ru: 俄语
is: 冰岛语
}
2、设置这些语言默认是开还是关。
修改NVRAM_EF_CB_CH_INFO_LID的默认值,在Nvram_data_items.c (custom\service\nvram)的COMMON_NVRAM_EF_CB_CH_INFO_DEFAULT[]中。
其中,dcs_mask有32个bit,前30个bit有意义,每个bit对应一个语言的设置,0表示关,1表示开。
举个例子,如果想设置,默认只打开西班牙语,由于西班牙语对应的是第5个bit,因此可以这样设置:
static kal_uint8 const COMMON_NVRAM_EF_CB_CH_INFO_DEFAULT[] =
{
......
0x08 /*00001000 */, 0x00, 0x00, 0x00, /* dcs_mask, default all dcs turn on */
......
}
3、把支持所有语言的开关设置为关闭
修改NVRAM_EF_SMSAL_COMMON_PARAM_LID的默认值,在Nvram_data_items.c (custom\service\nvram)COMMON_NVRAM_EF_SMSAL_COMMON_PARAM_DEFAULT[]中。
其中,CB setting,第一个字节表示小区广播是否开,第二个字节表示小区广播是否支持所有语言。如果要关掉支持所有语言,请按如下设置:
kal_uint8 const COMMON_NVRAM_EF_SMSAL_COMMON_PARAM_DEFAULT[] =
{
......
0x01, 0x00, /* CB setting - ON */
/* CB Status: ON, All Language: OFF*/
......
};
4、把上述两个LID,NVRAM_EF_SMSAL_COMMON_PARAM_LID和NVRAM_EF_CB_CH_INFO_LID,所定义的VERNO值增加一,从而保证版本升级后,修改可以被更新。
可参考如下例子:
Nvram_editor_data_item.h (interface\service\nvram)
#define NVRAM_EF_SMSAL_COMMON_PARAM_LID_VERNO "002"
#define NVRAM_EF_CB_CH_INFO_LID_VERNO "002"
// 在上述例子中,就是把原来的"002"改成 "003"。
5、申请patch,打开宏__SMS_SIM_DCS_DEFAULT_OFF__,使手机不去读取SIM卡读取语言。避免更换过SIM卡,或者SIM卡中存在语言,导致上述的设置失效。