Android 4.2(JB2)加入多账户后input&language以及Calendar的变化总结
JB2中最明显的变化是加入了支持多账户,为了搞清楚多账户的功能对每个apk的影响,我主要测试了IME和Calendar两个功能,现将两者的测试结果记录如下:
IME方面:
1.进入settings的input&language选项设置语言,如果当前有多个用户的话,此时会弹出对话框“此改变将影响所有用户”,意思是语言是所有用户共用的,如果用户A将语言设置为英文,那么B用户登录后,语言也变化为英文。这个是由
\packages\apps\Settings\src\com\android\settings\LocalePicker.java 文件中的如下code来控制的:
public voidonLocaleSelected(final Locale locale) {
if(Utils.hasMultipleUsers(getActivity())) {
mTargetLocale = locale;
showDialog(DLG_SHOW_GLOBAL_WARNING);
} else {
getActivity().onBackPressed();
LocalePicker.updateLocale(locale);
}
红色部分是4.2新加的,加入了多用户的判断,如果有多个用户,则弹出刚才所说的对话框。所有的用户所用的locale是同一个,具体逻辑可见\frameworks\base\core\java\com\android\internal\app\LocalePicker.java,updateLocale等函数调用的是这个类中的函数。
2.默认的输入法是Android的LatinIME,当我以用户A的身份登录时安装了“谷歌拼音输入法”,在A的settings中就有这个输入法的选项可选择,但是此时退出再以B身份登录的话,B的settings是没有“谷歌拼音输入法”可选的。即用户安装的第三方apk只对改用户生效,不会影响其他用户。
Calendar方面:
以用户A登录进去创建事件a,再以用户B登录进去创建事件b,用户A看不到事件b,用户B也看不见事件a,各个用户之间是相对独立的。
Calendar的实现在packages\apps\Calendar,具体的界面显示等控制可在此目录中找到。其ContentProvider控制和访问Calendar相关的数据,可见packages\providers\CalendarProvider.
目前只测试了这几项,其他的变化若有发现,日后再补充。
补充:移动开发 , Android ,