如何检查 "Multiple users" 是否启用

How to check if "Multiple users" is enabled

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

谢谢!

对于API24级及以上,可以使用方法UserManager.supportsMultipleUsers(),其中returns设备是否支持boolean中的多用户。

在API24级之前,没有系统权限,没有方法可以检查这个。可以有一个解决方法,比如使用方法 getUserCount() 获取用户数。同样,这也需要 android.permission.MANAGE_USERS 许可。

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

如果您对此回答有什么想补充的,请在下方评论。