DpcMigrationClient

public interface DpcMigrationClient


用于发出 dpc 迁移相关请求的客户端。

摘要

公共方法

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。

  • 如果调用方不是设备所有者或资料所有者,或者之前已迁移到 Android Management API 的设备所有者或资料所有者,那么将来封装 SecurityException 失败。

  • 如果与 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 列表(如果成功的话)。

  • 如果调用方不是设备所有者或资料所有者,或者之前已迁移到 Android Management API 的设备所有者或资料所有者,那么将来封装 SecurityException 失败。

  • 如果与 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 中传递。这些代码不得在公司自有设备上传入。请注意,在设备管理迁移到 Android Device Policy 之前,系统会移除这些 Wi-Fi 网络。如果移除网络失败,迁移也会失败,而且由于移除网络不是原子操作,某些网络可能已被移除。

在工作资料运行 Android 12 的个人所有设备上,由调用 DPC 配置的所有 Wi-Fi 网络在设备管理迁移到 Android Device Policy 之前都会被移除,无论 migrationRequest 中传递的 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 中传递。这些代码不得在公司自有设备上传入。请注意,在设备管理迁移到 Android Device Policy 之前,系统会移除这些 Wi-Fi 网络。如果移除网络失败,迁移也会失败,而且由于移除网络不是原子操作,某些网络可能已被移除。

在工作资料运行 Android 12 的个人所有设备上,由调用 DPC 配置的所有 Wi-Fi 网络在设备管理迁移到 Android Device Policy 之前都会被移除,无论 migrationRequest 中传递的 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 迁移相关的调用失败。异常的消息和子类型包含有关失败情况的更多详细信息。