关于Android 多用户配置的梳理

源码如下:

frameworks/base/core/java/android/os/UserManager.java

/**
 * Returns whether this device supports multiple users with their own login and customizable
 * space.
 * @return whether the device supports multiple users.
 */
public static boolean supportsMultipleUsers() {
    return getMaxSupportedUsers() > 1
            && SystemProperties.getBoolean("fw.show_multiuserui",
            Resources.getSystem().getBoolean(R.bool.config_enableMultiUserUI));
}

/**
    * Returns the maximum number of users that can be created on this device. A return value
    * of 1 means that it is a single user device.
    * @hide
    * @return a value greater than or equal to 1
    */
@UnsupportedAppUsage
public static int getMaxSupportedUsers() {
    // Don't allow multiple users on certain builds
    if (android.os.Build.ID.startsWith("JVP")) return 1;
    return SystemProperties.getInt("fw.max_users",
            Resources.getSystem().getInteger(R.integer.config_multiuserMaximumUsers));
}


配置多用户模式的开启和关闭

需要通过overlay的方式修改framework/base/core/res/res/values/config.xml的“config_multiuserMaximumUsers”和"config_enableMultiUserUI"参数

<!--  Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">1</integer>
<!--  Whether Multiuser UI should be shown -->
<bool name="config_enableMultiUserUI">false</bool>
config_multiuserMaximumUsers

当为1时,表示不支持多用户;当大于1时,表示支持多用户的最大个数

config_enableMultiUserUI

当为false时,多用户功能处于停用状态;当为true时,多用户功能处于启用状态


APP层获取多用户的相关参数:
方法名返回数据
UserManager.supportsMultipleUsers()是否支持多用户
UserManager.getMaxSupportedUsers()获取支持的多用户的最大个数
UserManager.getUserName()获取当前用户的名称
UserManager.getUserHandle()获取当前用户的id

参考文档: https://source.android.google.cn/devices/tech/admin/multi-user#applying_the_overlay

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值