By Jing.chen
在多用户系统里,切换用户后需要重新获取数据、监听数据以保证不同的用户数据不同。比如在systemui里,导航栏按键的组合方式,在机主(Host)模式下设置back键在后,在访客(Guest)模式下back键在前,切换不同的用户应该显示正确的组合方式,本文介绍从SettingsProvider和contentProvider获取多用户数据。
一、从SettingsProvider获取多用户数据
1. 获取UserID
mCurrentUserId =ActivityManager.getCurrentUser();//只有系统应用才能获取到
2. 根据UserID去获取数据:
systemui是通过ContentObserver去监听导航栏组合方式变化的,导航栏组合方式的值是存在SettingsProvider里的,
private class NaviBarControlsModeObserver extends ContentObserver
{
public NaviBarControlsModeObserver(Handlerhandler)
{
super(handler);
}
@Override
public void onChange(boolean selfChange){
// TODO Auto-generated method stub
super.onChange(selfChange);
//根据UserId去获取值,getIntForUser方法是hideapi
int naviBarType = Settings.Secure.getIntForUser(mContext.getContentResolver(),
Nav