1

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

在此处输入图像描述

谢谢!

4

2 回答 2

0

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

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

于 2021-05-21T02:38:39.437 回答
0

经过几个小时的搜索,我通过浏览 /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() 进行检查,但以防万一在实际上不支持多个用户的设备上该偏好是虚假的。

如果您想在此答案中添加任何内容,请在下面发表评论。

于 2021-05-21T07:52:17.827 回答