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<DpcMigrationAttempt> getMigrationAttempt(
    @NonNull GetDpcMigrationAttemptRequest getMigrationAttemptRequest
)

取得遷移嘗試。

如果 GetDpcMigrationAttemptRequest 中未指定名稱,系統會傳回最新的 DpcMigrationAttempt。

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

傳回
@NonNull ListenableFuture<DpcMigrationAttempt>

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

  • 如果成功,則為包裝 DpcMigrationAttempt 的成功 Future。

  • 如果找不到 DpcMigrationAttempt,則會包裝空值的成功 Future。

  • 如果呼叫端不是裝置擁有者或設定檔擁有者,或是已遷移至 Android Management API 的先前裝置擁有者或設定檔擁有者,則會失敗的未來包裝 SecurityException。

  • 未來包裝失敗 DpcMigrationException 如果與 DPC 遷移相關的呼叫失敗,訊息和例外狀況的子類型包含失敗的詳細資料。

getMigrationAttemptAwait

abstract DpcMigrationAttempt getMigrationAttemptAwait(
    @NonNull GetDpcMigrationAttemptRequest getMigrationAttemptRequest
)

取得遷移嘗試。

如果 GetDpcMigrationAttemptRequest 中未指定名稱,系統會傳回最新的 DpcMigrationAttempt。

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

傳回
DpcMigrationAttempt

要求的 DpcMigrationAttempt,如果找不到則為空值

擲回
SecurityException

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

DpcMigrationException

如果與 DPC 遷移相關的呼叫失敗,訊息和例外狀況的子類型包含失敗的詳細資料。

listMigrationAttempts

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

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

這個方法只能由裝置擁有者或設定檔擁有者呼叫,或是由遷移至 Android Management API 的先前裝置擁有者或設定檔擁有者呼叫。注意:系統會自動刪除先前的遷移嘗試,且不會還原。

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

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

  • 如果成功,則為封裝 DpcMigrationAttempt 清單的成功 Future。

  • 如果呼叫端不是裝置擁有者或設定檔擁有者,或是已遷移至 Android Management API 的先前裝置擁有者或設定檔擁有者,則會失敗的未來包裝 SecurityException。

  • 未來包裝失敗 DpcMigrationException 如果與 DPC 遷移相關的呼叫失敗,訊息和例外狀況的子類型包含失敗的詳細資料。

listMigrationAttemptsAwait

abstract @NonNull List<@NonNull DpcMigrationAttempt> listMigrationAttemptsAwait()

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

這個方法只能由裝置擁有者或設定檔擁有者呼叫,或是由遷移至 Android Management API 的先前裝置擁有者或設定檔擁有者呼叫。注意:系統會自動刪除先前的遷移嘗試,且不會還原。

擲回
SecurityException

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

DpcMigrationException

如果與 DPC 遷移相關的呼叫失敗,訊息和例外狀況的子類型包含失敗的詳細資料。

migrateDeviceManagementToAndroidManagementApi

abstract @NonNull ListenableFuture<@NonNull DpcMigrationAttempt> migrateDeviceManagementToAndroidManagementApi(
    @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 網路,則必須由設定檔擁有者在 DpcMigrationRequest 中傳遞已設定的 Wi-Fi 網路 (Android 12 除外)。公司擁有的裝置不得傳遞這些值。請注意,裝置管理功能遷移至 Android 裝置政策後,這些 Wi-Fi 網路就會遭到移除。如果無法移除網路,遷移作業也會失敗。由於移除網路並非不可分割的作業,因此部分網路可能已移除。

在搭載 Android 12 的個人裝置上,如果裝置設有工作資料夾,系統會在裝置管理功能遷移至 Android Device Policy 之前,移除呼叫 DPC 設定的所有 Wi-Fi 網路,無論 migrationRequest 中傳遞的 Wi-Fi 網路為何。

參數
@NonNull ComponentName notificationServiceComponentName

擴充 NotificationReceiverService 的服務 ComponentName。這個元件必須是屬於呼叫應用程式的有效元件,且已在資訊清單中匯出,否則系統會擲回 IllegalArgumentException。

@NonNull ComponentName adminComponentName

呼叫 DPC 的管理員 ComponentName DeviceAdminReceiver。

@NonNull DpcMigrationRequest migrationRequest

DpcMigrationRequest,內含遷移權杖和已設定的 Wi-Fi 網路。如果呼叫者是個人裝置上的設定檔擁有者,且已設定任何網路,則必須提供後者。

傳回
@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 網路,則必須由設定檔擁有者在 DpcMigrationRequest 中傳遞已設定的 Wi-Fi 網路 (Android 12 除外)。公司擁有的裝置不得傳遞這些值。請注意,裝置管理功能遷移至 Android 裝置政策後,這些 Wi-Fi 網路就會遭到移除。如果無法移除網路,遷移作業也會失敗。由於移除網路並非不可分割的作業,因此部分網路可能已移除。

在搭載 Android 12 的個人裝置上,如果裝置設有工作資料夾,系統會在裝置管理功能遷移至 Android Device Policy 之前,移除呼叫 DPC 設定的所有 Wi-Fi 網路,無論 migrationRequest 中傳遞的 Wi-Fi 網路為何。

參數
@NonNull ComponentName notificationServiceComponentName

擴充 NotificationReceiverService 的服務 ComponentName。這個元件必須是屬於呼叫應用程式的有效元件,且已在資訊清單中匯出,否則系統會擲回 IllegalArgumentException。

@NonNull ComponentName adminComponentName

呼叫 DPC 的管理員 ComponentName DeviceAdminReceiver。

@NonNull DpcMigrationRequest migrationRequest

DpcMigrationRequest,內含遷移權杖和已設定的 Wi-Fi 網路。如果呼叫者是個人裝置上的設定檔擁有者,且已設定任何網路,則必須提供後者。

傳回
@NonNull DpcMigrationAttempt

DpcMigrationException,顯示遷移作業的目前狀態 (如果成功)。

擲回
SecurityException

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

IllegalArgumentException

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

DpcMigrationException

如果與 DPC 遷移相關的呼叫失敗,訊息和例外狀況的子類型包含失敗的詳細資料。