DpcMigrationClient

public interface DpcMigrationClient


用戶端提出虛擬私有雲遷移相關要求。

摘要

公用方法

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,則成功包裝。

  • 成功的未來包裝空值,以免找不到 DpcMigrationAttempt

  • 無法納入 SecurityException,以免呼叫端不是裝置擁有者或設定檔擁有者,或是先前遷移至 Android Management API 的裝置擁有者或設定檔擁有者。

  • 日後無法包裝 DpcMigrationException;如果遠端程序遷移相關呼叫失敗。例外狀況的訊息和子類型包含失敗的詳細資料。

getMigrationAttemptAwait

abstract DpcMigrationAttempt getMigrationAttemptAwait(
    @NonNull GetDpcMigrationAttemptRequest getMigrationAttemptRequest
)

取得遷移嘗試。

如未在 GetDpcMigrationAttemptRequest 中指定名稱,會傳回最新的 DpcMigrationAttempt

只有裝置擁有者或設定檔擁有者,或原先已遷移至 Android Management API 的裝置擁有者或設定檔擁有者才能呼叫這個方法。

傳回
DpcMigrationAttempt

如果找不到要求的 DpcMigrationAttempt 或空值

擲回
java.lang.SecurityException

如果呼叫端不是裝置擁有者或設定檔擁有者,或原先已遷移至 Android Management API 的裝置擁有者或設定檔擁有者

com.google.android.managementapi.dpcmigration.DpcMigrationException

如果虛擬私有雲遷移相關呼叫失敗,就會發生此問題。例外狀況的訊息和子類型包含失敗的詳細資料。

listMigrationAttempts

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

傳回所有遷移嘗試的清單。

只有裝置擁有者或設定檔擁有者,或原先已遷移至 Android Management API 的裝置擁有者或設定檔擁有者才能呼叫這個方法。注意:系統會自動刪除較舊的遷移作業,而且不會傳回。

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

包裝結果的 ListenableFuture。可用的值包括

  • 如果成功包裝 DpcMigrationAttempt 清單,表示成功。

  • 無法納入 SecurityException,以免呼叫端不是裝置擁有者或設定檔擁有者,或是先前遷移至 Android Management API 的裝置擁有者或設定檔擁有者。

  • 日後無法包裝 DpcMigrationException;如果遠端程序遷移相關呼叫失敗。例外狀況的訊息和子類型包含失敗的詳細資料。

listMigrationAttemptsAwait

abstract @NonNull List<@NonNull DpcMigrationAttemptlistMigrationAttemptsAwait()

傳回所有遷移嘗試的清單。

只有裝置擁有者或設定檔擁有者,或原先已遷移至 Android Management API 的裝置擁有者或設定檔擁有者才能呼叫這個方法。注意:系統會自動刪除較舊的遷移作業,而且不會傳回。

擲回
java.lang.SecurityException

如果呼叫端不是裝置擁有者或設定檔擁有者,或原先已遷移至 Android Management API 的裝置擁有者或設定檔擁有者

com.google.android.managementapi.dpcmigration.DpcMigrationException

如果虛擬私有雲遷移相關呼叫失敗,就會發生此問題。例外狀況的訊息和子類型包含失敗的詳細資料。

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 網路,設定檔擁有者 (Android 12 除外) 都必須在 DpcMigrationRequest 中傳送已設定的 Wi-Fi 網路。不得透過公司擁有的裝置傳入。請注意,系統會在裝置管理遷移至 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 的管理員 DeviceAdminReceiver ComponentName

@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 網路,設定檔擁有者 (Android 12 除外) 都必須在 DpcMigrationRequest 中傳送已設定的 Wi-Fi 網路。不得透過公司擁有的裝置傳入。請注意,系統會在裝置管理遷移至 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 的管理員 DeviceAdminReceiver ComponentName

@NonNull DpcMigrationRequest migrationRequest

包含遷移權杖和已設定 Wi-Fi 網路的 DpcMigrationRequest。只有在呼叫者是個人裝置的設定檔擁有者,且已設定任何網路時,才需要執行後者。

傳回
@NonNull DpcMigrationAttempt

DpcMigrationException:如果遷移成功,會顯示目前的遷移狀態。

擲回
java.lang.SecurityException

來電者不是裝置擁有者或設定檔擁有者。

java.lang.IllegalArgumentException

如果遷移權杖為空白,或是 notificationServiceComponentName 未參照在資訊清單中匯出的有效元件 NotificationReceiverService,或者 adminComponentName 不是目前套件的有效管理員。

com.google.android.managementapi.dpcmigration.DpcMigrationException

如果虛擬私有雲遷移相關呼叫失敗,就會發生此問題。例外狀況的訊息和子類型包含失敗的詳細資料。