如何检查 "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(),但以防万一在实际上不支持多用户的设备上偏好是伪造的。
如果您对此回答有什么想补充的,请在下方评论。
是否有系统设置 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(),但以防万一在实际上不支持多用户的设备上偏好是伪造的。
如果您对此回答有什么想补充的,请在下方评论。