AccountSetupClient

interface AccountSetupClient


用于管理设备上受管理账号设置的客户端。

生命周期集成要求:为了正确处理 launchAuthenticationActivity 等操作所需的结果回调,此客户端依赖于 AndroidX Activity Result API。调用方必须通过以下方式将此客户端与 Android 组件生命周期(Activity 或 Fragment)集成:

  1. 使用 getLifecycleObserver 检索观测器。

  2. 向宿主 activity 或 fragment 的 Lifecycle 注册此观察器,通常在 onCreate 中(例如,lifecycle.addObserver(client.lifecycleObserver))。

状态更新:如需在异步账号设置状态发生变化时收到通知,调用应用需要执行以下操作:

  1. 实现 AccountSetupListener 接口。

  2. 提供用于处理收到的状态更新的实现。

  3. 扩展 NotificationReceiverService 并提供 AccountSetupListener 实例。

  4. 将扩展的 NotificationReceiverService 类添加到 AndroidManifest.xml,并确保它已导出。

使用 AccountSetupClientFactory 创建此客户端的实例。

摘要

公共函数

suspend AccountSetupAttempt
cancelAccountSetupAttempt(
    cancelAccountSetupAttemptRequest: CancelAccountSetupAttemptRequest
)

取消指定的账号设置尝试。

ListenableFuture<AccountSetupAttempt>
cancelAccountSetupAttemptFuture(
    cancelAccountSetupAttemptRequest: CancelAccountSetupAttemptRequest
)

取消指定的账号设置尝试。

suspend AccountSetupAttempt
launchAuthenticationActivity(
    launchAuthenticationActivityRequest: LaunchAuthenticationActivityRequest
)

启动 Minute Maid activity 以对用户进行身份验证,如果账号已存在于设备上,则启动账号选择器。

ListenableFuture<AccountSetupAttempt>
launchAuthenticationActivityFuture(
    launchAuthenticationActivityRequest: LaunchAuthenticationActivityRequest
)

启动 Minute Maid activity 以对用户进行身份验证,如果账号已存在于设备上,则启动账号选择器。

suspend List<AccountSetupAttempt>

列出所有账号设置尝试。

ListenableFuture<List<AccountSetupAttempt>>

列出所有账号设置尝试。

suspend AccountSetupAttempt
startAccountSetup(startAccountSetupRequest: StartAccountSetupRequest)

开始账号设置。

ListenableFuture<AccountSetupAttempt>
startAccountSetupFuture(
    startAccountSetupRequest: StartAccountSetupRequest
)

开始账号设置。

公共属性

LifecycleObserver

用于处理此客户端的生命周期相关设置的 LifecycleObserver

公共函数

cancelAccountSetupAttempt

suspend fun cancelAccountSetupAttempt(
    cancelAccountSetupAttemptRequest: CancelAccountSetupAttemptRequest
): AccountSetupAttempt

取消指定的账号设置尝试。

参数
cancelAccountSetupAttemptRequest: CancelAccountSetupAttemptRequest

取消账号设置尝试的请求。

返回
AccountSetupAttempt

更新后的账号设置尝试。

cancelAccountSetupAttemptFuture

fun cancelAccountSetupAttemptFuture(
    cancelAccountSetupAttemptRequest: CancelAccountSetupAttemptRequest
): ListenableFuture<AccountSetupAttempt>

取消指定的账号设置尝试。

参数
cancelAccountSetupAttemptRequest: CancelAccountSetupAttemptRequest

取消账号设置尝试的请求。

返回
ListenableFuture<AccountSetupAttempt>

封装结果的 ListenableFuture。这可能是

  • 一个成功包装了更新后的账号设置尝试的 future。

  • 如果未找到账号设置尝试或该尝试已处于最终状态(错误或成功),则为失败的 future。

launchAuthenticationActivity

suspend fun launchAuthenticationActivity(
    launchAuthenticationActivityRequest: LaunchAuthenticationActivityRequest
): AccountSetupAttempt

启动 Minute Maid activity 以对用户进行身份验证,如果账号已存在于设备上,则启动账号选择器。

参数
launchAuthenticationActivityRequest: LaunchAuthenticationActivityRequest

启动身份验证 activity 的请求。请求必须包含处于 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 状态的账号设置尝试。

抛出
java.lang.SecurityException

如果调用方不是设备所有者或资料所有者。

com.google.android.managementapi.accountsetup.AccountSetupInvalidStateException

如果账号设置尝试不处于 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 状态。

launchAuthenticationActivityFuture

fun launchAuthenticationActivityFuture(
    launchAuthenticationActivityRequest: LaunchAuthenticationActivityRequest
): ListenableFuture<AccountSetupAttempt>

启动 Minute Maid activity 以对用户进行身份验证,如果账号已存在于设备上,则启动账号选择器。

参数
launchAuthenticationActivityRequest: LaunchAuthenticationActivityRequest

启动身份验证 activity 的请求。请求必须包含处于 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 状态的账号设置尝试。

返回
ListenableFuture<AccountSetupAttempt>

封装结果的 ListenableFuture。这可能是

  • 一个成功的 future,用于封装处于 IN_PROGRESS 状态的账号设置尝试(如果成功)。

  • 如果调用者不是设备所有者或资料所有者,则返回封装 SecurityException 的失败 future。

  • 如果账号设置尝试未处于 AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED_INFORMATION 状态,则为封装 AccountSetupInvalidStateException 的失败 future。

listAccountSetupAttempts

suspend fun listAccountSetupAttempts(): List<AccountSetupAttempt>

列出所有账号设置尝试。系统仅返回最近 20 次账号设置尝试。

返回
List<AccountSetupAttempt>

所有账号设置尝试的列表。

listAccountSetupAttemptsFuture

fun listAccountSetupAttemptsFuture(): ListenableFuture<List<AccountSetupAttempt>>

列出所有账号设置尝试。系统仅返回最近 20 次账号设置尝试。

startAccountSetup

suspend fun startAccountSetup(startAccountSetupRequest: StartAccountSetupRequest): AccountSetupAttempt

开始账号设置。

注意:此方法会将 android.app.admin.DevicePolicyManager.DELEGATION_APP_RESTRICTIONS 范围委托给 Android 设备政策应用,从而允许该应用代表调用管理员管理应用限制。账号设置完成后,系统会移除对 Android Device Policy 的此委托范围。

参数
startAccountSetupRequest: StartAccountSetupRequest

开始账号设置的请求。

返回
AccountSetupAttempt

账号设置尝试。

startAccountSetupFuture

fun startAccountSetupFuture(
    startAccountSetupRequest: StartAccountSetupRequest
): ListenableFuture<AccountSetupAttempt>

开始账号设置。

注意:此方法会将 android.app.admin.DevicePolicyManager.DELEGATION_APP_RESTRICTIONS 范围委托给 Android 设备政策应用,从而允许该应用代表调用管理员管理应用限制。账号设置完成后,系统会移除对 Android Device Policy 的此委托范围。

参数
startAccountSetupRequest: StartAccountSetupRequest

开始账号设置的请求。

返回
ListenableFuture<AccountSetupAttempt>

封装结果的 ListenableFuture。这可能是

公共属性

lifecycleObserver

val lifecycleObserverLifecycleObserver

用于处理此客户端的生命周期相关设置的 LifecycleObserver

此观察器必须向托管相应客户端实例的 activity 或 fragment 的 Lifecycle 注册(例如,lifecycle.addObserver(...) 通常在宿主的 onCreate 中调用)。

注册此观测器可让客户端正确初始化内部组件,尤其是处理 launchAuthenticationActivity 结果所需的 androidx.activity.result.ActivityResultLauncher。如果未能注册此观察者,尝试启动身份验证 activity 时会出错。