在10.0的系统产品开发中,在对于sim卡这个功能模块中,在系统默认系统语言不随sim卡的语言变化,产品开发的需要要求系统语言 需要随着识别到sim卡的语言后,设置为系统默认语言,接下来就实现这个功能
frameworks\opt\telephony\src\java\com\android\internal\telephony\MccTable.java
在系统开机重启的过程中,如果未插sim卡,系统语言为预置的语言; 在系统检测到插入SIM卡过后,系统语言根据 SIM 卡来改变, 默认会把开机后第一次插的 SIM 卡的语言设置为默认语言;(如果sim的mcc可以在内置的mcc表中找到); 如果用户没有手动在 Settings 里面设置语言,以后系统语言一直是默认语言(第一次插的 SIM 卡的语言),即使是插入其它国家的卡,系统语言也不会变; 如果用户在 Settings 里面手动设置了语言,以后系统语言会为设置后的语言,无论插入什么卡,系统语言不会变,一直为用户手动设置后的语言。 而实现监听SIM卡更新系统默认语言的类就是在MccTable.java中实现的,接下来具体分析下相关源码
在实现系统语言随sim卡语言自适应变化功能实现的核心功能中,在通过上述的分析以后得知, 实现监听SIM卡更新系统默认语言的类就是在MccTable.java中实现的, MccTable.java的静态代码块中创建了有个ArrayList sTable,