DpcMigrationClient

public interface DpcMigrationClient


用于发出与数字 PC 迁移相关的请求的客户端。

摘要

公共方法

abstract @NonNull ListenableFuture<DpcMigrationAttempt>
getMigrationAttempt(
    @NonNull GetDpcMigrationAttemptRequest getMigrationAttemptRequest
)

获取迁移尝试。

abstract DpcMigrationAttempt
getMigrationAttemptAwait(
    @NonNull GetDpcMigrationAttemptRequest getMigrationAttemptRequest
)

获取迁移尝试。

abstract @NonNull ListenableFuture<@NonNull List<@NonNull DpcMigrationAttempt>>

返回所有迁移尝试的列表。

abstract @NonNull List<@NonNull DpcMigrationAttempt>

返回所有迁移尝试的列表。

abstract @NonNull ListenableFuture<@NonNull DpcMigrationAttempt>
migrateDeviceManagementToAndroidManagementApi(
    @NonNull ComponentName notificationServiceComponentName,
    @NonNull ComponentName adminComponentName,
    @NonNull DpcMigrationRequest migrationRequest
)

将此设备迁移到由 Android Management API 管理。

abstract @NonNull DpcMigrationAttempt
migrateDeviceManagementToAndroidManagementApiAwait(
    @NonNull ComponentName notificationServiceComponentName,
    @NonNull ComponentName adminComponentName,
    @NonNull DpcMigrationRequest migrationRequest
)

将此设备迁移到由 Android Management API 管理。

公共方法

getMigrationAttempt

abstract @NonNull ListenableFuture<DpcMigrationAttemptgetMigrationAttempt(
    @NonNull GetDpcMigrationAttemptRequest getMigrationAttemptRequest
)

获取迁移尝试。

如果 GetDpcMigrationAttemptRequest 中未指定名称,则返回最新的 DpcMigrationAttempt

此方法只能由设备所有者或配置文件所有者,或者迁移到 Android Management API 的旧设备所有者或配置文件所有者调用。

返回
@NonNull ListenableFuture<DpcMigrationAttempt>

用于封装结果的 ListenableFuture。可以是

  • 成功封装 DpcMigrationAttempt 的 Future(如果成功)。

  • 如果未找到 DpcMigrationAttempt,则成功将 Future 封装为 null。

  • SecurityException 的未来封装失败(如果调用方不是设备所有者或配置文件所有者,或者之前迁移到 Android Management API 的设备所有者或配置文件所有者)。

  • 如果 dpc 迁移相关调用失败,未来封装 DpcMigrationException 失败。异常的消息和子类型包含有关失败的更多详细信息。

getMigrationAttemptAwait

abstract DpcMigrationAttempt getMigrationAttemptAwait(
    @NonNull GetDpcMigrationAttemptRequest getMigrationAttemptRequest
)

获取迁移尝试。

如果 GetDpcMigrationAttemptRequest 中未指定名称,则返回最新的 DpcMigrationAttempt

此方法只能由设备所有者或配置文件所有者,或者迁移到 Android Management API 的旧设备所有者或配置文件所有者调用。

返回
DpcMigrationAttempt

所请求的 DpcMigrationAttempt;如果找不到,则为 null

抛出
java.lang.SecurityException

如果调用方不是设备所有者或配置文件所有者,或者之前迁移到 Android Management API 的设备所有者或配置文件所有者。

com.google.android.managementapi.dpcmigration.DpcMigrationException

如果 DPC 迁移相关调用失败。异常的消息和子类型包含有关失败的更多详细信息。

listMigrationAttempts

abstract @NonNull ListenableFuture<@NonNull List<@NonNull DpcMigrationAttempt>> listMigrationAttempts()

返回所有迁移尝试的列表。

此方法只能由设备所有者或配置文件所有者,或者迁移到 Android Management API 的旧设备所有者或配置文件所有者调用。注意:较早的迁移尝试会被自动删除,并且不会返回。

返回
@NonNull ListenableFuture<@NonNull List<@NonNull DpcMigrationAttempt>>

用于封装结果的 ListenableFuture。可以是

  • 成功的 Future,如果成功的话,会封装 DpcMigrationAttempt 列表。

  • SecurityException 的未来封装失败(如果调用方不是设备所有者或配置文件所有者,或者之前迁移到 Android Management API 的设备所有者或配置文件所有者)。

  • 如果 dpc 迁移相关调用失败,未来封装 DpcMigrationException 失败。异常的消息和子类型包含有关失败的更多详细信息。

listMigrationAttemptsAwait

abstract @NonNull List<@NonNull DpcMigrationAttemptlistMigrationAttemptsAwait()

返回所有迁移尝试的列表。

此方法只能由设备所有者或配置文件所有者,或者迁移到 Android Management API 的旧设备所有者或配置文件所有者调用。注意:较早的迁移尝试会被自动删除,并且不会返回。

抛出
java.lang.SecurityException

如果调用方不是设备所有者或配置文件所有者,或者之前迁移到 Android Management API 的设备所有者或配置文件所有者。

com.google.android.managementapi.dpcmigration.DpcMigrationException

如果 DPC 迁移相关调用失败。异常的消息和子类型包含有关失败的更多详细信息。

migrateDeviceManagementToAndroidManagementApi

abstract @NonNull ListenableFuture<@NonNull DpcMigrationAttemptmigrateDeviceManagementToAndroidManagementApi(
    @NonNull ComponentName notificationServiceComponentName,
    @NonNull ComponentName adminComponentName,
    @NonNull DpcMigrationRequest migrationRequest
)

将此设备迁移到由 Android Management API 管理。

迁移完成后,发起调用的应用将失去其“设备所有者”或“配置文件所有者”权限,因为这些权限已转移到 Android Device Policy。

警告:此操作无法撤消!当 Android Device Policy 收到请求并完成对迁移令牌的初步检查时,返回的 ListenableFuture 便会完成。如果失败,ListenableFuture 将封装 Exception

只有设备所有者或资料所有者可以调用此方法。在 Android 10 及更低版本中,不得在同时具有设备所有者和资料所有者的设备上调用此方法。

如果已配置 Wi-Fi 网络的个人设备配置了 Wi-Fi 网络,那么个人资料所有者(在 Android 12 上除外)必须在 DpcMigrationRequest 中传递已配置的 Wi-Fi 网络。这些参数不得通过公司自有设备传入。请注意,系统会在设备管理服务迁移到 Android Device Policy 前移除这些 Wi-Fi 网络。如果移除网络失败,迁移也会失败。由于移除网络不是原子操作,因此某些网络可能已被移除。

在搭载 Android 12 的工作资料的个人自有设备上,无论在 migrationRequest 中传递的 Wi-Fi 网络如何,在设备管理即将迁移到 Android Device Policy 之前,系统都会移除发起调用 DPC 配置的所有 Wi-Fi 网络。

参数
@NonNull ComponentName notificationServiceComponentName

扩展 NotificationReceiverService 的服务的 ComponentName。它必须是属于调用方应用的有效组件,且已导出到清单中,否则将抛出 IllegalArgumentException

@NonNull ComponentName adminComponentName

发起调用 DPC 的管理员 DeviceAdminReceiverComponentName

@NonNull DpcMigrationRequest migrationRequest

包含迁移令牌和已配置的 Wi-Fi 网络的 DpcMigrationRequest。只有当来电者是个人所有设备上的个人资料所有者,并且已配置任何网络时,您才需要设置个人资料所有者。

返回
@NonNull ListenableFuture<@NonNull DpcMigrationAttempt>

用于封装结果的 ListenableFuture。可以是

migrateDeviceManagementToAndroidManagementApiAwait

abstract @NonNull DpcMigrationAttempt migrateDeviceManagementToAndroidManagementApiAwait(
    @NonNull ComponentName notificationServiceComponentName,
    @NonNull ComponentName adminComponentName,
    @NonNull DpcMigrationRequest migrationRequest
)

将此设备迁移到由 Android Management API 管理。

迁移完成后,发起调用的应用将失去其“设备所有者”或“配置文件所有者”权限,因为这些权限已转移到 Android Device Policy。

警告:此操作无法撤消!当 Android Device Policy 收到请求并完成对迁移令牌的初步检查时,此挂起趣味返回。如果失败,系统会抛出 Exception

只有设备所有者或资料所有者可以调用此方法。在 Android 10 及更低版本中,不得在同时具有设备所有者和资料所有者的设备上调用此方法。

如果已配置 Wi-Fi 网络的个人设备配置了 Wi-Fi 网络,那么个人资料所有者(在 Android 12 上除外)必须在 DpcMigrationRequest 中传递已配置的 Wi-Fi 网络。这些参数不得通过公司自有设备传入。请注意,系统会在设备管理服务迁移到 Android Device Policy 前移除这些 Wi-Fi 网络。如果移除网络失败,迁移也会失败。由于移除网络不是原子操作,因此某些网络可能已被移除。

在搭载 Android 12 的工作资料的个人自有设备上,无论在 migrationRequest 中传递的 Wi-Fi 网络如何,在设备管理即将迁移到 Android Device Policy 之前,系统都会移除发起调用 DPC 配置的所有 Wi-Fi 网络。

参数
@NonNull ComponentName notificationServiceComponentName

扩展 NotificationReceiverService 的服务的 ComponentName。它必须是属于调用方应用的有效组件,且已导出到清单中,否则将抛出 IllegalArgumentException

@NonNull ComponentName adminComponentName

发起调用 DPC 的管理员 DeviceAdminReceiverComponentName

@NonNull DpcMigrationRequest migrationRequest

包含迁移令牌和已配置的 Wi-Fi 网络的 DpcMigrationRequest。只有当来电者是个人所有设备上的个人资料所有者,并且已配置任何网络时,您才需要设置个人资料所有者。

返回
@NonNull DpcMigrationAttempt

DpcMigrationException 替换为迁移的当前状态(如果迁移成功)。

抛出
java.lang.SecurityException

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

java.lang.IllegalArgumentException

迁移令牌为空,或者 notificationServiceComponentName 并非引用在清单中导出的 NotificationReceiverService 的有效组件,或者 adminComponentName 不是属于当前软件包的活跃管理员。

com.google.android.managementapi.dpcmigration.DpcMigrationException

如果 DPC 迁移相关调用失败。异常的消息和子类型包含有关失败的更多详细信息。