首页 > 代码库 > android 如何设置小区广播的默认语言

android 如何设置小区广播的默认语言

如何设置在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卡中存在语言,导致上述的设置失效。
    

android 如何设置小区广播的默认语言