DpcMigrationClient

interface DpcMigrationClient


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

摘要

公共函数

ListenableFuture<DpcMigrationAttempt?>
getMigrationAttempt(
    getMigrationAttemptRequest: GetDpcMigrationAttemptRequest
)

获取迁移尝试。

suspend DpcMigrationAttempt?
getMigrationAttemptAwait(
    getMigrationAttemptRequest: GetDpcMigrationAttemptRequest
)

获取迁移尝试。

ListenableFuture<List<DpcMigrationAttempt>>

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

suspend List<DpcMigrationAttempt>

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

ListenableFuture<DpcMigrationAttempt>
migrateDeviceManagementToAndroidManagementApi(
    notificationServiceComponentName: ComponentName,
    adminComponentName: ComponentName,
    migrationRequest: DpcMigrationRequest
)

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

suspend DpcMigrationAttempt
migrateDeviceManagementToAndroidManagementApiAwait(
    notificationServiceComponentName: ComponentName,
    adminComponentName: ComponentName,
    migrationRequest: DpcMigrationRequest
)

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

公共函数

getMigrationAttempt

fun getMigrationAttempt(
    getMigrationAttemptRequest: GetDpcMigrationAttemptRequest
): ListenableFuture<DpcMigrationAttempt?>

获取迁移尝试。

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

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

返回
ListenableFuture<DpcMigrationAttempt?>

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

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

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

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

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

getMigrationAttemptAwait

suspend fun getMigrationAttemptAwait(
    getMigrationAttemptRequest: GetDpcMigrationAttemptRequest
): DpcMigrationAttempt?

获取迁移尝试。

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

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

返回
DpcMigrationAttempt?

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

抛出
java.lang.SecurityException

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

com.google.android.managementapi.dpcmigration.DpcMigrationException

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

listMigrationAttempts

fun listMigrationAttempts(): ListenableFuture<List<DpcMigrationAttempt>>

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

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

返回
ListenableFuture<List<DpcMigrationAttempt>>

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

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

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

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

listMigrationAttemptsAwait

suspend fun listMigrationAttemptsAwait(): List<DpcMigrationAttempt>

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

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

抛出
java.lang.SecurityException

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

com.google.android.managementapi.dpcmigration.DpcMigrationException

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

migrateDeviceManagementToAndroidManagementApi

fun migrateDeviceManagementToAndroidManagementApi(
    notificationServiceComponentName: ComponentName,
    adminComponentName: ComponentName,
    migrationRequest: DpcMigrationRequest
): ListenableFuture<DpcMigrationAttempt>

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

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

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

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

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

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

参数
notificationServiceComponentName: ComponentName

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

adminComponentName: ComponentName

发起调用 DPC 的管理员 DeviceAdminReceiverComponentName

migrationRequest: DpcMigrationRequest

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

返回
ListenableFuture<DpcMigrationAttempt>

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

migrateDeviceManagementToAndroidManagementApiAwait

suspend fun migrateDeviceManagementToAndroidManagementApiAwait(
    notificationServiceComponentName: ComponentName,
    adminComponentName: ComponentName,
    migrationRequest: DpcMigrationRequest
): DpcMigrationAttempt

将此设备迁移到由 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 网络。

参数
notificationServiceComponentName: ComponentName

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

adminComponentName: ComponentName

发起调用 DPC 的管理员 DeviceAdminReceiverComponentName

migrationRequest: DpcMigrationRequest

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

返回
DpcMigrationAttempt

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

抛出
java.lang.SecurityException

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

java.lang.IllegalArgumentException

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

com.google.android.managementapi.dpcmigration.DpcMigrationException

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