public class UserManager
extends Object
java.lang.Object | |
↳ | android.os.UserManager |
在多用户系统上管理用户和用户的详细信息。 有两大类用户:具有自己的登录的完全可定制用户,以及与相关用户共享工作区的托管配置文件。
用户与帐户不同,由AccountManager
管理。 每个用户都可以拥有自己的一组帐户。
有关托管配置文件的更多信息,请参阅 ACTION_PROVISION_MANAGED_PROFILE
。
Public methods |
|
---|---|
static Intent |
createUserCreationIntent(String userName, String accountName, String accountType, PersistableBundle accountOptions) 返回为所提供的名称和帐户名称创建用户的意图。 |
Bundle |
getApplicationRestrictions(String packageName) 返回一个 |
long |
getSerialNumberForUser(UserHandle user) 返回用户的序列号。 |
int |
getUserCount() 返回当前在设备上创建的用户数量。 |
long |
getUserCreationTime(UserHandle userHandle) 返回用户或与主叫用户关联的托管配置文件的创建时间。 |
UserHandle |
getUserForSerialNumber(long serialNumber) 返回与先前由 |
String |
getUserName() 返回进行此调用的用户的用户名。 |
List<UserHandle> |
getUserProfiles() 返回与调用进程在其上运行的用户(包括用户自身)关联的配置文件的UserHandles列表。 |
Bundle |
getUserRestrictions() 返回对此用户施加的用户范围限制。 |
Bundle |
getUserRestrictions(UserHandle userHandle) 返回由 |
boolean |
hasUserRestriction(String restrictionKey) 返回当前用户是否被禁止执行特定操作或设置特定设置。 |
boolean |
isQuietModeEnabled(UserHandle userHandle) 返回给定的配置文件是否处于安静模式。 |
boolean |
isSystemUser() 用于检查此进程是否在系统用户下运行。 |
boolean |
isUserAGoat() 用于确定发起此呼叫的用户是否需要远程传送。 |
boolean |
isUserRunning(UserHandle user) 返回给定用户是否正在运行。 |
boolean |
isUserRunningOrStopping(UserHandle user) 返回给定用户是否正在运行 或停止。 |
boolean |
isUserUnlocked(UserHandle user) 返回给定用户是否处于“解锁”状态。 |
boolean |
isUserUnlocked() 返回主叫用户是否处于“解锁”状态。 |
boolean |
setRestrictionsChallenge(String newPin) 此方法在API级别23中已被弃用。系统不再提供限制PIN功能。 出于向后兼容性的原因,此方法被保留并始终返回false。 |
void |
setUserRestriction(String key, boolean value) 此方法在API级别21中已弃用。请改用 |
void |
setUserRestrictions(Bundle restrictions, UserHandle userHandle) 这将不再有效。 |
void |
setUserRestrictions(Bundle restrictions) 这将不再有效。 |
static boolean |
supportsMultipleUsers() 返回此设备是否支持具有自己的登录名和可自定义空间的多个用户。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
String ALLOW_PARENT_PROFILE_APP_LINKING
允许父级配置文件中的应用处理来自受管配置文件的网络链接。 此用户限制仅在受管配置文件中有效。 如果设置了:对操作ACTION_VIEW
,类别CATEGORY_BROWSABLE
,方案http或https以及定义主机的父配置文件中活动的意图过滤器可以处理来自受管配置文件的意图。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“allow_parent_profile_app_linking”
String DISALLOW_ADD_USER
指定是否禁止用户添加新用户和配置文件。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
此限制对辅助用户和托管配置文件没有影响,因为只有主用户才能添加其他用户。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_add_user”
String DISALLOW_ADJUST_VOLUME
指定是否禁止用户调整主音量。 如果设置,主音量将被静音。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_adjust_volume”
String DISALLOW_APPS_CONTROL
指定是否禁止用户在设置或启动器中修改应用程序。 启用此限制时将不允许执行以下操作:
默认值是 false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_control_apps”
String DISALLOW_CONFIG_BLUETOOTH
指定是否禁止用户配置蓝牙。 这不限制从打开或关闭蓝牙用户。 默认值是false
。
此限制在托管配置文件中不起作用。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_config_bluetooth”
String DISALLOW_CONFIG_CELL_BROADCASTS
指定是否禁止用户配置小区广播。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
此限制对辅助用户和托管配置文件没有影响,因为只有主用户可以配置小区广播。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_config_cell_broadcasts”
String DISALLOW_CONFIG_CREDENTIALS
指定是否禁止用户配置用户凭证。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_config_credentials”
String DISALLOW_CONFIG_MOBILE_NETWORKS
指定是否禁止用户配置移动网络。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
此限制对辅助用户和托管配置文件没有影响,因为只有主用户可以配置移动网络。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_config_mobile_networks”
String DISALLOW_CONFIG_TETHERING
指定是否禁止用户配置绑定和便携式热点。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_config_tethering”
String DISALLOW_CONFIG_VPN
指定是否禁止用户配置VPN。 默认值是false
。 此限制仅在M
的管理配置文件中M
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_config_vpn”
String DISALLOW_CONFIG_WIFI
指定是否禁止用户更改Wi-Fi接入点。 默认值是false
。
此限制在托管配置文件中不起作用。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_config_wifi”
String DISALLOW_CREATE_WINDOWS
指定不应创建除应用程序窗口之外的窗口。 这将阻止创建以下类型的窗口。
TYPE_TOAST
TYPE_PHONE
TYPE_PRIORITY_PHONE
TYPE_SYSTEM_ALERT
TYPE_SYSTEM_ERROR
TYPE_SYSTEM_OVERLAY
这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_create_windows”
String DISALLOW_CROSS_PROFILE_COPY_PASTE
指定是否可以在相关配置文件中粘贴此配置文件剪贴板中的内容。 不限制相关配置文件的剪贴板是否可以粘贴到此配置文件中。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_cross_profile_copy_paste”
String DISALLOW_DATA_ROAMING
指定漫游时是否允许用户使用蜂窝数据。 这只能由设备所有者设置。 默认值是false
。
也可以看看:
常量值:“no_data_roaming”
String DISALLOW_DEBUGGING_FEATURES
指定是否禁止用户启用或访问调试功能。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_debugging_features”
String DISALLOW_FACTORY_RESET
指定是否禁止用户从设置重置出厂设置。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
此限制对辅助用户和托管配置文件没有影响,因为只有主用户才可以重置设备。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_factory_reset”
String DISALLOW_FUN
指定用户是否被允许玩得开心。 在某些情况下,设备拥有者可能希望防止用户在使用该设备时感受到娱乐或欢乐。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_fun”
String DISALLOW_INSTALL_APPS
指定是否禁止用户安装应用程序。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_install_apps”
String DISALLOW_INSTALL_UNKNOWN_SOURCES
指定是否禁止用户启用“未知来源”设置,该设置允许安装来自未知来源的应用程序。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_install_unknown_sources”
String DISALLOW_MODIFY_ACCOUNTS
指定是否禁止用户添加和删除帐户,除非它们是programmatically
添加的programmatically
。 默认值是false
。
从 N
个人资料或设备所有者应用仍然可以使用 AccountManager
API在帐户管理不被允许时添加或删除帐户。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_modify_accounts”
String DISALLOW_MOUNT_PHYSICAL_MEDIA
指定是否禁止用户安装物理外部介质。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_physical_media”
String DISALLOW_NETWORK_RESET
指定是否禁止用户从“设置”重置网络设置。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
此限制对辅助用户和托管配置文件没有影响,因为只有主用户可以重置设备的网络设置。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_network_reset”
String DISALLOW_OUTGOING_BEAM
指定用户是否被允许使用NFC从应用程序中发射数据。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_outgoing_beam”
String DISALLOW_OUTGOING_CALLS
指定用户不允许拨打电话。 紧急呼叫仍然是允许的。 默认值是false
。
此限制对管理的配置文件没有影响。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_outgoing_calls”
String DISALLOW_REMOVE_USER
当在主要用户上设置时,这指定用户是否可以移除其他用户。 在辅助用户上设置时,它指定用户是否可以删除自己。 此限制对管理的配置文件没有影响。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_remove_user”
String DISALLOW_SAFE_BOOT
指定是否允许用户将设备重新引导至安全引导模式。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_safe_boot”
String DISALLOW_SET_USER_ICON
指定用户是否被允许更改其图标。 设备所有者和资料所有者可以设置此限制。 当它由设备所有者设置时,只有目标用户会受到影响。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_set_user_icon”
String DISALLOW_SET_WALLPAPER
禁止设置壁纸的用户限制。 无论此限制如何,配置文件所有者和设备所有者都可以设置壁纸。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常数值:“no_set_wallpaper”
String DISALLOW_SHARE_LOCATION
指定是否禁止用户打开位置共享。 默认值是false
。
在托管配置文件中,位置共享通常会反映主要用户的设置,但可以通过在托管配置文件中将此限制设置为true来覆盖和强制关闭。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_share_location”
String DISALLOW_SMS
指定用户不被允许发送或接收SMS消息。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_sms”
String DISALLOW_UNINSTALL_APPS
指定是否禁止用户卸载应用程序。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_uninstall_apps”
String DISALLOW_UNMUTE_MICROPHONE
指定是否禁止用户调整麦克风音量。 如果设置,麦克风将被静音。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_unmute_microphone”
String DISALLOW_USB_FILE_TRANSFER
指定是否禁止用户通过USB传输文件。 这只能由主用户的设备所有者和配置文件所有者设置。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“no_usb_file_transfer”
String ENSURE_VERIFY_APPS
指定是否禁止用户禁用应用程序验证。 默认值是false
。
用户限制的关键。
类型:布尔值
也可以看看:
常量值:“ensure_verify_apps”
String KEY_RESTRICTIONS_PENDING
应用程序限制密钥,用于指示应用程序实际限制的未决到达。
支持限制的应用程序应检查是否存在此密钥。 值为true
表示可能会在不久的将来应用限制,但尚未提供。 任何管理应用程序都有责任设置此标志,以便在执行最终限制时对其进行更新。
应用程序限制的关键。
类型:布尔值
也可以看看:
常量值:“restrictions_pending”
int USER_CREATION_FAILED_NOT_PERMITTED
错误结果表明此用户不允许在此设备上添加其他用户。 这是由意图createUserCreationIntent(String, String, String, PersistableBundle)
创建的活动返回的结果代码。
常数值:1(0x00000001)
int USER_CREATION_FAILED_NO_MORE_USERS
错误结果表明在此设备上不能再创建用户。 这是由意图createUserCreationIntent(String, String, String, PersistableBundle)
创建的活动返回的结果代码。
常量值:2(0x00000002)
Intent createUserCreationIntent (String userName, String accountName, String accountType, PersistableBundle accountOptions)
返回为所提供的名称和帐户名称创建用户的意图。 当新用户的设置过程开始时,将使用名称和帐户名称。
意图应该使用startActivityForResult启动,并且返回结果将指示用户是否同意添加新用户以及操作是否成功。 创建用户的任何错误都将返回结果代码。 如果用户取消请求,返回结果将为RESULT_CANCELED
。 成功时,结果代码将为RESULT_OK
。
使用 supportsMultipleUsers()
首先检查设备是否支持此操作。
新用户已创建但未初始化。 首次切换到用户后,设置过程会为该用户使用首选用户名和帐户信息。
Parameters | |
---|---|
userName |
String : Optional name to assign to the user. |
accountName |
String : Optional account name that will be used by the setup wizard to initialize the user. |
accountType |
String : Optional account type for the account to be created. This is required if the account name is specified. |
accountOptions |
PersistableBundle : Optional bundle of data to be passed in during account creation in the new user via addAccount(String, String, String[], Bundle, android.app.Activity, android.accounts.AccountManagerCallback, Handler) . |
Returns | |
---|---|
Intent |
An Intent that can be launched from an Activity. |
Bundle getApplicationRestrictions (String packageName)
对于给定的包名称,返回包含此用户的任何保存的应用程序限制的Bundle
。 只有具有此包名称的应用程序才能调用此方法。
返回的 Bundle
由应用程序定义的键值对组成,值的类型可以是:
boolean
int
String
or String[]
M
, Bundle
or Bundle[]
Parameters | |
---|---|
packageName |
String : the package name of the calling application |
Returns | |
---|---|
Bundle |
a Bundle with the restrictions for that package, or an empty Bundle if there are no saved restrictions. |
也可以看看:
long getSerialNumberForUser (UserHandle user)
返回用户的序列号。 这是分配给该用户的设备唯一号码; 如果删除用户然后创建新用户,则新用户将不会被赋予相同的序列号。
Parameters | |
---|---|
user |
UserHandle : The user whose serial number is to be retrieved. |
Returns | |
---|---|
long |
The serial number of the given user; returns -1 if the given UserHandle does not exist. |
也可以看看:
long getUserCreationTime (UserHandle userHandle)
返回用户或与主叫用户关联的托管配置文件的创建时间。
Parameters | |
---|---|
userHandle |
UserHandle : user handle of the user or a managed profile associated with the calling user. |
Returns | |
---|---|
long |
creation time in milliseconds since Epoch time. |
UserHandle getUserForSerialNumber (long serialNumber)
返回与先前由 getSerialNumberForUser(UserHandle)
返回的序列号关联的用户。
Parameters | |
---|---|
serialNumber |
long : The serial number of the user that is being retrieved. |
Returns | |
---|---|
UserHandle |
Return the user associated with the serial number, or null if there is not one. |
String getUserName ()
返回进行此调用的用户的用户名。 此调用仅适用于系统映像上的应用程序; 它需要MANAGE_USERS权限。
Returns | |
---|---|
String |
the user name |
List<UserHandle> getUserProfiles ()
返回与调用进程在其上运行的用户(包括用户自身)关联的配置文件的UserHandles列表。
Returns | |
---|---|
List<UserHandle> |
A non-empty list of UserHandles associated with the calling user. |
Bundle getUserRestrictions ()
返回对此用户施加的用户范围限制。
Returns | |
---|---|
Bundle |
a Bundle containing all the restrictions. |
Bundle getUserRestrictions (UserHandle userHandle)
返回由 userHandle
指定的用户施加的用户范围限制。
Parameters | |
---|---|
userHandle |
UserHandle : the UserHandle of the user for whom to retrieve the restrictions. |
Returns | |
---|---|
Bundle |
a Bundle containing all the restrictions. |
boolean hasUserRestriction (String restrictionKey)
返回当前用户是否被禁止执行特定操作或设置特定设置。
Parameters | |
---|---|
restrictionKey |
String : The string key representing the restriction. |
Returns | |
---|---|
boolean |
true if the current user has the given restriction, false otherwise. |
boolean isQuietModeEnabled (UserHandle userHandle)
返回给定的配置文件是否处于安静模式。 注意:只有托管配置文件支持安静模式。
Parameters | |
---|---|
userHandle |
UserHandle : The user handle of the profile to be queried. |
Returns | |
---|---|
boolean |
true if the profile is in quiet mode, false otherwise. |
boolean isSystemUser ()
用于检查此进程是否在系统用户下运行。 系统用户是在第一次启动时隐式创建并承载大部分系统服务的初始用户。
Returns | |
---|---|
boolean |
whether this process is running under the system user. |
boolean isUserAGoat ()
用于确定发起此呼叫的用户是否需要远程传送。
从 LOLLIPOP
,这种方法现在可以使用先进的山羊识别技术自动识别山羊。
Returns | |
---|---|
boolean |
Returns true if the user making this call is a goat. |
boolean isUserRunning (UserHandle user)
返回给定用户是否正在运行。 这意味着用户处于“启动”状态,而不是“停止” - 当前允许用户通过计划的警报运行代码,接收广播等。启动的用户可以是当前的前台用户或后台用户; 这里的结果并不区分这两者。
Parameters | |
---|---|
user |
UserHandle : The user to retrieve the running state for. |
Returns | |
---|---|
boolean |
boolean isUserRunningOrStopping (UserHandle user)
返回给定用户是否正在运行或停止。 这就像isUserRunning(UserHandle)
,但是如果用户一直在运行但正在停止的过程中(但还没有完全停止,仍然运行一些代码),它也会返回true。
Parameters | |
---|---|
user |
UserHandle : The user to retrieve the running state for. |
Returns | |
---|---|
boolean |
boolean isUserUnlocked (UserHandle user)
返回给定用户是否处于“解锁”状态。
在直接启动的设备上,用户只有在输入凭据后才能解锁(例如锁定模式或PIN)。 在没有直接引导的设备上,一旦用户启动,就会解锁。
当用户被锁定时,只有设备保护的数据存储可用。 当用户解锁时,设备保护和凭证保护的私人应用程序数据存储均可用。
Parameters | |
---|---|
user |
UserHandle : to retrieve the unlocked state for. |
Returns | |
---|---|
boolean |
boolean isUserUnlocked ()
返回主叫用户是否处于“解锁”状态。
在直接启动的设备上,用户只有在输入凭据后才能解锁(例如锁定模式或PIN)。 在没有直接引导的设备上,一旦用户启动,就会解锁。
当用户被锁定时,只有设备保护的数据存储可用。 当用户解锁时,设备保护和凭证保护的私人应用程序数据存储均可用。
Returns | |
---|---|
boolean |
boolean setRestrictionsChallenge (String newPin)
此方法在API级别23中已弃用。
系统不再提供限制PIN功能。 出于向后兼容性的原因,此方法被保留并始终返回false。
为限制设置新的质询PIN。 这仅适用于预安装的应用程序,并且需要MANAGE_USERS权限。
Parameters | |
---|---|
newPin |
String : the PIN to use for challenge dialogs. |
Returns | |
---|---|
boolean |
Returns true if the challenge PIN was set successfully. |
void setUserRestriction (String key, boolean value)
此方法在API级别21中已弃用。
改为使用addUserRestriction(android.content.ComponentName, String)
或clearUserRestriction(android.content.ComponentName, String)
。
设置特定限制的值。 需要MANAGE_USERS权限。
Parameters | |
---|---|
key |
String : the key of the restriction |
value |
boolean : the value for the restriction |
void setUserRestrictions (Bundle restrictions, UserHandle userHandle)
这将不再有效。 设备所有者和配置文件所有者应该使用addUserRestriction(ComponentName, String)
。
Parameters | |
---|---|
restrictions |
Bundle
|
userHandle |
UserHandle
|
void setUserRestrictions (Bundle restrictions)
这将不再有效。 设备所有者和配置文件所有者应该使用addUserRestriction(ComponentName, String)
。
Parameters | |
---|---|
restrictions |
Bundle
|
boolean supportsMultipleUsers ()
返回此设备是否支持具有自己的登录名和可自定义空间的多个用户。
Returns | |
---|---|
boolean |
whether the device supports multiple users. |