【问题标题】:How to check if "Multiple users" is enabled如何检查“多用户”是否启用
【发布时间】:2021-08-10 05:57:11
【问题描述】:

是否有系统设置表或 API 可以查看设置 -> 系统 -> 高级 -> 多用户中的“多用户”设置是否打开?

谢谢!

【问题讨论】:

    标签: android multiple-users android-multiple-users


    【解决方案1】:

    对于API级别24及以上,可以使用UserManager.supportsMultipleUsers()方法,返回设备是否支持boolean中的多用户。

    在 API 级别 24 之前,在没有系统权限的情况下没有任何方法可以检查这一点。可以有一种解决方法,例如使用方法getUserCount() 获取用户数。同样,这也需要android.permission.MANAGE_USERS 权限。

    【讨论】:

    • 不幸的是,无论是否在设置中实际启用了多个用户,这都是真实的,这正是我所关心的。
    【解决方案2】:

    经过几个小时的搜索,我通过浏览 /data/system/users/0 并查看了 settings_system.xml、settings_secure.xml 和 settings_global.xml 找到了答案。事实证明,我正在寻找的是 settings_global.xml 中的“user_switcher_enabled”。

    这是我的代码:

    public static boolean isMultipleUsersEnabled(Context context) {
        try {
            int pref = Settings.Global.getInt(context.getContentResolver(), "user_switcher_enabled");
            return pref == 1 && (Build.VERSION.SDK_INT < Build.VERSION_CODES.N || UserManager.supportsMultipleUsers());
        } catch (Settings.SettingNotFoundException e) {
            Utils.logError(TAG, "user_switcher_enabled setting not found: " + e.toString());
            return false;
        } 
    }
    

    可能不需要检查 UserManager.supportsMultipleUsers(),但以防万一在实际上不支持多个用户的设备上,偏好是虚假的。

    如果您想对此答案添加任何内容,请在下方评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-12
      • 2019-02-21
      • 1970-01-01
      • 2016-04-12
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多