[FAQ09809][NW]运营商名称支持多语言

[DESCRIPTION]
运营商的名称显示,和多个方面有关系,在阅读本FAQ之前建议先参考
FAQ09394 [NW]网络运营商名称显示&SIM名称显示
 
如FAQ09394所讲,运营商名称有4种来源,这里讲到的只会是第4种,也就是存储在xml中的,也只有用这种来源显示的名字才能扩展成支持多语言。那在xml中的,只有一种显示语言,就是spn 这个字段的内容,如果切换语言,这个名称也不会变。
 
例如Spn-conf.xml中有个字段<spnOverrides numeric="31000" spn="NEPW"/>,也就是运营商的plmn是31000,其对应的名称是“NEPW”。当运营商的来源是xml时,那这种case下这个运营商的名称会显示“NEPW”,那即使当前手机切换到其他语言,仍然显示的是“NEPW”。
 
[SOLUTION]
有了上面的背景,那就切入正题,要想在这种case下(当运营商的来源是xml)支持多语言显示,就要在对应res中添加一个Strings,然后再添加各种语言的翻译,然后显示的时候就用res中string,而不用读取xml中的spn了。 具体做法如下:
(1)在alps\mediatek\frameworks\base\res\res\values\Strings.xml(L之后的版本:alps\vendor\mediatek\proprietary\frameworks\base\res\res\values\strings.xml)中定义个字串,其名称为A
(2)在同res目录下的其他values添加A对应的语言翻译
(3)在alps\mediatek\frameworks\base\res\res\values\public.xml (L之后的版本:alps\vendor\mediatek\proprietary\frameworks\base\res\res\values\ public.xml)中添加A的id, id取值type为string的那一组的最后一个string的id+1 
(4)在alps\frameworks\opt\telephony\src\java\com\android\internal\telephony\Ril.java (L之后的版本:alps\frameworks\opt\telephony\src\java\com\android\internal\telephony\uicc\SpnOverride.java)中的lookupOperatorName()方法,依照numeric等于A运营商的plmn,其operName就是这个字串A的内容。
 
因为运营商有很多,把所有的运营商名称都换成这个样子比较耗工作量(请按照需求添加)。
 
注: 目前只支持实体运营商,MVNO还不支持
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值