由自訂 DPC 所管理的裝置可以遷移至 Android 裝置 政策 (ADP),並利用 Android Management API。
必要條件
- 該裝置已由您的 EMM 管理,含有自訂 DPC。
- 您的自訂 DPC 已經整合 AMAPI SDK。
- 裝置已註冊 Google Play EMM API。
- 裝置屬於 Google Play 管理版帳戶企業。
- 裝置搭載 Android 9 以上版本。
- 如果是公司裝置上的工作資料夾,則必須在裝置上執行 Android 11 以上版本。
在自訂 DPC 中與 AMAPI SDK 整合
遷移程序需要自訂的 DPC 應用程式,以整合 AMAPI SDK你可以進一步瞭解這個程式庫及其新增方式 AMAPI SDK 整合指南中所述的應用程式至應用程式。
裝置遷移步驟
- 設定裝置在遷移後要使用的政策 至 AMAPI為提供最佳使用者體驗,這項政策應與政策相同 已對裝置強制執行 Chrome 政策
- 呼叫以下方法,為裝置建立遷移權杖
enterprises.migrationTokens.create
。 - 將這個遷移權杖的
value
傳送至 或是共用 DPC - 使用以下方式,確保裝置已安裝 Android Device Policy: Play EMM API。
- 使用
DpcMigrationClientFactory
建立DpcMigrationClient
。 - 在
DpcMigrationClient
上,呼叫migrateDeviceManagementToAndroidManagementApi
方法。 遷移完畢。 deviceState
會變更為ACTIVE
,您會收到STATUS_REPORT
訊息,並透過 Pub/Sub 管道傳送。
遷移完成後,呼叫應用程式就會失去裝置擁有者或設定檔 擁有者權限,因為這些權限會轉移至 Android Device Policy。
注意:裝置必須連上網際網路才能開始遷移。 這項程序的設計可恢復運作期間的網路中斷 確保需要網路連線的金鑰作業 轉移完成後,再實際轉移裝置擁有者或設定檔擁有者權限 從您的 DPC 到 Android Device Policy。
遷移權杖
EMM 伺服器會要求遷移權杖,表明想 遷移由自訂 DPC 管理的特定裝置。 您可在遷移作業順利完成前使用遷移權杖,或是 直到到期為止
自訂裝置政策控制器 (DPC) 整合
首先,您必須建立 DpcMigrationRequest
,傳遞
並視需求列出已設定的 Wi-Fi 網路清單
建構工具:
// Create a DpcMigrationRequest
DpcMigrationRequest request =
DpcMigrationRequest.builder()
.setMigrationToken(token)
.build();
這樣您就可以使用 DpcMigrationClient
,並啟動
遷移程序
migrateDeviceManagementToAndroidManagementApi
:
// Create a DpcMigrationClient
DpcMigrationClient dpcMigrationClient = DpcMigrationClientFactory.create(context);
try {
// Use helper function to retrieve Admin component name
var adminComponentName = getAdminComponent(context);
ListenableFuture<DpcMigrationAttempt> futureAttempt =
dpcMigrationClient.migrateDeviceManagementToAndroidManagementApi(
new ComponentName(context, DpcMigrationNotificationReceiver.class),
adminComponentName,
request);
// handle futureAttempt
} catch (RuntimeException e) {
// send failure feedback: "Error: " + e
}
追蹤遷移進度
裝置上的遷移程序是透過
DpcMigrationAttempt
。
您可以直接使用
migrateDeviceManagementToAndroidManagementApi
或使用
getMigrationAttempt
。
和 listMigrationAttempts
方法,讓
並列出遷移嘗試
// Passing an empty name, we retrieve the last attempt
var request = GetDpcMigrationAttemptRequest.builder().build();
var attempt = client.getMigrationAttempt(request);
您可以選擇使用以下程式碼設定 DpcMigrationListener
:
你的NotificationReceiverService
,正在聆聽
DpcMigrationAttempt
的狀態更新。
// DpcMigrationNotificationReceiver for callback handling
public class DpcMigrationNotificationReceiver extends NotificationReceiverService
implements DpcMigrationListener {
@Override
protected DpcMigrationListener getDpcMigrationListener() {
// getDpcMigrationListener"
return this;
}
@Override
public void onMigrationStateChanged(DpcMigrationAttempt migrationAttempt) {
// send success feedback
}
}
處理 Wi-Fi 網路
如果擁有由自訂 DPC 管理的 Wi-Fi 網路,請參閱 AMAPI ONC 政策 必須符合這些網路的設定,以便 AMAPI 管理這些網路 DPC 遷移與 Wi-Fi 管理的方式不同 則會因管理模式而異
公司擁有裝置上的全代管裝置和工作資料夾
在遷移期間,Android Device Policy 會假設所有 Wi-Fi 網路 政策中設定的 SSID 和安全性類型 裝置上設定的 Wi-Fi 網路與已設定的 Wi-Fi 網路相同 Wi-Fi 網路。因此,自訂 DPC 設定的 Wi-Fi 網路不會受到影響 調整後,與 ONC 政策相應的 更是如此不過,若自訂 DPC 在遷移後解除安裝,則 系統會自動移除自訂 DPC 設定的 Wi-Fi 網路。 Android Device Policy 會持續強制執行政策,並控管其中任一網路 系統會將政策中設定的網路新增為 正常工作。
個人裝置上的工作資料夾
基於技術原因,自訂裝置政策控制器設定的 Wi-Fi 網路必須
已由 Android Device Policy 自訂的 DPC 移除以開始管理這些
Wi-Fi 網路。AMAPI SDK 會處理這項問題,並移除這類 Wi-Fi 網路
,再將擁有權從自訂的裝置政策控制器 (DPC) 轉移至 Android Device Policy
但您需要自訂的 DPC 才能將這些網路的相關資訊
DpcMigrationRequest
。遷移完成後
系統會正常新增政策中設定的值,因此建議您
由自訂 DPC 新增的網路也應在政策中設定。
請注意以下幾點:
- 如果使用中的網路是自訂 DPC 設定的 Wi-Fi 網路,則裝置 在遷移期間可能會暫時處於離線狀態
- 只能傳入由自訂 DPC 設定的 Wi-Fi 網路
DpcMigrationRequest
,否則遷移作業失敗, AMAPI SDK 無法移除網路 (例如使用者新增了 Wi-Fi 網路)。 - 應傳入 Wi-Fi 網路
DpcMigrationRequest
只有在自訂 DPC 為 設定檔擁有者轉移到個人裝置,否則遷移失敗。 - 基於技術因素,Android 12 屬於例外情況,也就是
系統會忽略傳入
DpcMigrationRequest
的所有 Wi-Fi 網路 系統會自動移除由自訂 DPC 設定的網路。另外 自訂裝置政策控制器 (DPC) 必須採用ACCESS_WIFI_STATE
在 Android 12 上授予個人裝置上的工作資料夾權限 否則遷移作業就會失敗
注意事項
以下是與這項功能相關的注意事項。
企業專屬 ID
如果是搭載 Android 12 以上版本的工作資料夾,請提供企業專屬 ID,
網址為 DevicePolicyManager.getEnrollmentSpecificId
遷移期間不會有任何改變。不過,如果工作資料夾
系統會在裝置上再次建立由 Android Device Policy 所管理 (例如
刪除舊裝置後或將裝置恢復原廠設定後,
企業專屬 ID 則會在變更後變更。
完全受管理裝置上的工作資料夾
這項功能不支援全代管裝置,且只具備安全功能 搭載 Android 9 或 10 的設定檔請勿嘗試遷移這些裝置 請注意,無論錯誤是否引發錯誤 遷移至 DPC 遷移作業