การลงทะเบียน Android Enterprise มีข้อมูลประจำตัวผู้ใช้ 2 ประเภทหลักๆ ดังนี้ บัญชี Managed Google Play และบัญชี Google ที่มีการจัดการ บัญชี Google Play ที่มีการจัดการ จะเน้นที่อุปกรณ์เป็นหลัก ซึ่งหมายความว่าบัญชีเหล่านี้ไม่ได้เชื่อมโยงกับข้อมูลประจำตัว ใน Google ของผู้ใช้ที่เฉพาะเจาะจง ในทางตรงกันข้าม บัญชี Google ที่มีการจัดการจะลิงก์กับข้อมูลประจำตัว Google ของบริษัทของผู้ใช้ ซึ่งจะช่วยปรับปรุงประสบการณ์ของผู้ใช้ด้วยการให้ผู้ใช้ ยังคงลงชื่อเข้าใช้อยู่ในอุปกรณ์
บัญชี Managed Google Play เคยเป็นบัญชีมาตรฐาน อย่างไรก็ตาม ปัจจุบัน Google ขอแนะนำให้นักพัฒนาซอฟต์แวร์รายใหม่ทั้งหมดใช้ขั้นตอนการลงทะเบียนที่ปรับปรุงแล้ว ซึ่ง ค่าเริ่มต้นคือการสร้างบัญชี Google ที่มีการจัดการ
แม้ว่าเราจะให้คำแนะนำสำหรับการติดตั้งใช้งานเวอร์ชันเก่าที่ส่วนท้ายของเอกสารนี้เพื่อเป็นบริบท แต่การพัฒนาใหม่ทั้งหมดควรเป็นไปตามขั้นตอนการลงทะเบียนใหม่ที่อธิบายไว้ที่นี่
ภาพรวม
ขั้นตอนการลงทะเบียนอุปกรณ์ที่ได้รับการปรับปรุงจะช่วยให้การตั้งค่าอุปกรณ์มีประสิทธิภาพมากขึ้นด้วยการใช้ประโยชน์จาก คอมโพเนนต์ใหม่หลายรายการและเปลี่ยนวิธีติดตั้งใช้งานเครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC) แบบกำหนดเอง แนวทางใหม่นี้กำหนดให้โซลูชัน DPC ที่กำหนดเองต้องผสานรวม กับ SDK ของ Android Management API (AMAPI) และ Android Device Policy เพื่อดำเนินการ ฟังก์ชันการเตรียมอุปกรณ์และการลงทะเบียนผู้ใช้
AMAPI SDK มี API ที่จำเป็นสำหรับการโต้ตอบกับนโยบายอุปกรณ์ Android ในอุปกรณ์นั้นๆ ในฝั่งเซิร์ฟเวอร์ โซลูชัน Enterprise Mobility Management (EMM) จะใช้ Play EMM API เพื่อสร้างโทเค็นการลงทะเบียน ที่จำเป็นในการเริ่มกระบวนการลงทะเบียนอุปกรณ์
ตอนนี้แอปพลิเคชัน Android Device Policy มีบทบาทสำคัญในการจัดการ การดำเนินการฝั่งอุปกรณ์ AMAPI SDK ใช้เพื่อจัดการการติดตั้ง และการอัปเดตที่จำเป็นในอุปกรณ์ Android Device Policy ยัง จะรับช่วงโฟลว์การตรวจสอบสิทธิ์ของผู้ใช้ จัดการการตรวจสอบสิทธิ์ของผู้ใช้โดยตรง และระบุตัวตนของผู้ใช้ให้กับ EMM ด้วย หาก Google ไม่สามารถตรวจสอบสิทธิ์ผู้ใช้ได้ไม่ว่าด้วยเหตุผลใดก็ตาม ระบบจะสร้างบัญชี Managed Google Play ใหม่และเพิ่มลงในอุปกรณ์เป็นตัวเลือกสำรอง
การผสานรวม API
ก่อนเริ่มต้นใช้งาน ให้ตรวจสอบว่าคุณใช้ไคลเอ็นต์ Play EMM API และ AMAPI SDK เวอร์ชันล่าสุด
คู่มือการติดตั้งใช้งานการลงทะเบียน
คู่มือนี้จะแสดงขั้นตอนที่จำเป็นสำหรับการลงทะเบียน โดยจะครอบคลุมถึง การเตรียมสภาพแวดล้อม การจัดการวิธีการลงทะเบียนต่างๆ และการจัดการ วงจรการใช้งานของอุปกรณ์
เตรียมสภาพแวดล้อม
ก่อนเริ่มการตั้งค่าบัญชี คุณต้องเตรียมสภาพแวดล้อมของอุปกรณ์
การเตรียมการนี้เกี่ยวข้องกับการอัปเดต Play Store เป็นเวอร์ชันล่าสุด
และติดตั้ง Android Device Policy
(com.google.android.apps.work.clouddpc
) ลงในอุปกรณ์โดยอัตโนมัติ การติดตั้ง Android Device Policy
เป็นสิ่งจำเป็นเนื่องจากมีองค์ประกอบสำคัญของกระบวนการตั้งค่าบัญชี
EMM ไม่จำเป็นต้องเตรียมสภาพแวดล้อมด้วยตนเอง แต่ควรใช้ EnvironmentClient
ตามที่ระบุไว้ใน
และปฏิบัติตามตัวอย่างโค้ดที่ให้ไว้
โค้ดตัวอย่าง
ก่อนที่จะใช้ AccountSetup API เพื่อเพิ่มบัญชีงานในอุปกรณ์ได้ DPC ต้องยืนยันก่อนว่า สภาพแวดล้อมของอุปกรณ์พร้อมแล้ว
ใช้
EnvironmentClientFactory
เพื่อสร้างอินสแตนซ์ของEnvironmentClient
และเรียกใช้prepareEnvironment
หรือprepareEnvironmentAsync
val notificationReceiverServiceName = ComponentName(context, NotificationReceiver::class.java) // An EMM should implement android.app.admin.DeviceAdminReceiver and use that // class to instantiate a ComponentName val admin = ComponentName(this, com.example.dpc.DeviceAdminReceiver::class.java) EnvironmentClientFactory.create(context) .prepareEnvironment( PrepareEnvironmentRequest.builder() .setRoles( listOf( Role.builder().setRoleType( Role.RoleType.DEVICE_POLICY_CONTROLLER ).build() ) ) .setAdmin(admin) .build(), notificationReceiverServiceName, ) [Proceed with AccountSetup]
การดำเนินการนี้อาจใช้เวลาหลายวินาทีหรือหลายนาที เนื่องจากระบบอาจติดตั้งหรืออัปเดตแอปพลิเคชันเพื่อยืนยันสภาพแวดล้อมการทำงานที่เหมาะสม Google ขอแนะนำให้ เริ่มกระบวนการนี้โดยเร็วที่สุดในเบื้องหลังและแสดง UI ที่เหมาะสมขณะที่ผู้ใช้รอ เมื่อการดำเนินการเสร็จสมบูรณ์ อุปกรณ์จะพร้อมให้ DPC ใช้ AccountSetup API
ขั้นตอนการลงทะเบียน
EMM ต้องหยุดใช้ users.generateAuthenticationToken()
และ
users.insert()
สำหรับอุปกรณ์ทั้งหมด แต่ EMM ต้องเรียกใช้ API ในอุปกรณ์
เพื่อทำการตรวจสอบสิทธิ์ผู้ใช้ปลายทาง API ใหม่จะแสดง userId
และ
email
ให้กับ DPC หาก Google ไม่สามารถตรวจสอบสิทธิ์ผู้ใช้ได้ ระบบจะสร้างบัญชี Managed Google Play และเพิ่มลงในอุปกรณ์ ในกรณีนี้ Google จะคืน userId
ของบัญชีนั้น
ตอนนี้ Google ขอแนะนำให้ใช้โทเค็นการลงทะเบียน ซึ่งต้องส่งไปยัง API การตรวจสอบสิทธิ์ EMM จะเป็นผู้กำหนดเวลาและวิธีการสร้างโทเค็น และโทเค็นนี้อาจเป็นส่วนหนึ่งของเพย์โหลดการลงทะเบียนที่มีอยู่ (เช่น คิวอาร์โค้ดหรือการกำหนดค่าแบบ Zero-Touch)
อย่างไรก็ตาม Google ขอแนะนำให้สร้างโทเค็นตามต้องการและแทนที่ API ที่มีอยู่สำหรับบัญชี Google Play ที่มีการจัดการด้วย API ใหม่เพื่อลดการเปลี่ยนแปลง



ขั้นตอนการลงทะเบียน DPC ที่กำหนดเองที่ได้รับการปรับปรุงมีดังนี้
- สร้างโทเค็นการลงทะเบียน: EMM สร้างโทเค็นการลงทะเบียนโดยใช้ Play EMM API
- เตรียมสภาพแวดล้อม: DPC ที่กำหนดเองใช้โฟลว์การเตรียมสภาพแวดล้อม เพื่อยืนยันว่าอุปกรณ์พร้อมสำหรับการลงทะเบียน
- เริ่มการลงทะเบียน: DPC ที่กำหนดเองจะเรียกใช้
startAccountSetup
API ใน AMAPI SDK โดยส่งโทเค็นการลงทะเบียน หมายเหตุ: DPC ต้องเป็นเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์ก่อนเรียกใช้ API นี้ - เปิดใช้กิจกรรมการตรวจสอบสิทธิ์ของ Google: หากจำเป็น DPC ที่กำหนดเองจะเรียกใช้
launchAuthenticationActivity
API ใน AMAPI SDK โดยส่งAccountSetupAttempt
ซึ่งจะเริ่ม กิจกรรมการตรวจสอบสิทธิ์ของ Google และนำผู้ใช้กลับไปยัง DPC ที่กำหนดเองเมื่อ การตรวจสอบสิทธิ์สำเร็จ นอกจากนี้ ผู้ใช้ยังข้ามกระบวนการนี้ได้ด้วย ในกรณีนี้ ระบบจะเพิ่มบัญชี Managed Google Play ลงในอุปกรณ์ ตัวเลือกนี้ กำหนดค่าได้โดยใช้googleAuthenticationOptions
- ลงทะเบียนให้เสร็จสมบูรณ์: AMAPI SDK จะแจ้งผลการลงทะเบียนให้ DPC ที่กำหนดเองทราบ
- เปิดใช้บริการของ Google: เมื่ออุปกรณ์ของผู้ใช้ที่มี
บัญชี Google ที่มีการจัดการเป็นไปตามนโยบายขององค์กรแล้ว EMM ต้อง
เรียกใช้
Devices.setState()
การดำเนินการนี้จะเปิดใช้สิทธิ์เข้าถึงบริการของ Google สำหรับบัญชีในอุปกรณ์ หากไม่มีการเรียกนี้ Play Store และบริการอื่นๆ ของ Google จะทำงานไม่ได้
การตั้งค่าบัญชี - ตัวอย่างโค้ด
หากต้องการเริ่มการพยายามตั้งค่าบัญชี แอปการโทรสามารถใช้
AccountSetupClient
และเรียกใช้เมธอดstartAccountSetup()
หรือstartAccountSetupFuture()
ดูตัวอย่างการติดตั้งใช้งานได้ที่ตัวอย่างโค้ดต่อไปนี้// Create AccountSetupClient val client = AccountSetupClientFactory.create( this, activityResultRegistry ) lifecycle.addObserver(client.lifecycleObserver) // Create adminComponent val notificationReceiver = ComponentName(this, AccountSetupNotificationReceiver::class.java) // Helper method to get enrollment token created with Play EMM API val enrollmentToken = getEnrollmentToken() val request = StartAccountSetupRequest.builder() .setEnrollmentToken(enteredText) .setNotificationReceiverServiceComponentName(notificationReceiver) .setAdminComponentName( ComponentName(this, com.example.dpc.DeviceAdminReceiver::class.java)) .build() try { val accountSetupAttempt = client.startAccountSetup(request) // handle attempt } catch (e: Exception) { // handle exception } ```
ใช้
AccountSetupListener
อินเทอร์เฟซและระบุวิธีจัดการการอัปเดตสถานะที่ได้รับขยาย
NotificationReceiverService
และระบุอินสแตนซ์AccountSetupListener
ที่สร้างในขั้นตอนที่ 2 โดยการลบล้างgetAccountSetupListener()
// Handles account setup changes class AccountSetupNotificationReceiver : NotificationReceiverService(), AccountSetupListener { override fun getAccountSetupListener(): AccountSetupListener = this override fun onAccountSetupChanged(accountSetupAttempt: AccountSetupAttempt) { when (accountSetupAttempt.state.kind) { StateCase.ADDED_ACCOUNT -> { val enterpriseAccount = state.addedAccount() val userId = enterpriseAccount.userId val deviceId = enterpriseAccount.deviceId // Handle account added state. } StateCase.AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED -> { val request = LaunchAuthenticationActivityRequest.builder() .setAccountSetupAttempt(accountSetupAttempt) .build(); // Send the attempt to the foreground activity to call: accountSetupClient.launchAuthenticationActivity(request) } StateCase.ACCOUNT_SETUP_ERROR -> { // Handle error state. val failureReason = state.accountSetupError().failureReason } else -> { // Handle unknown account setup attempt state. } } } } ```
เพิ่มคลาสที่ขยาย
NotificationReceiverService
ลงในAndroidManifest.xml
แล้วตรวจสอบว่าได้ส่งออกแล้ว<application> <service android:name = ".accountsetup.AccountSetupNotificationReceiver" android:exported = "true" /> </application>
หากแอปกำหนดเป้าหมายเป็น SDK 30 ขึ้นไป คุณจะต้องมีองค์ประกอบ queries ใน
AndroidManifest.xml
เพื่อระบุว่าแอปจะโต้ตอบกับ ADP<queries> <package android:name="com.google.android.apps.work.clouddpc" /> </queries>
คำแนะนำในการทดสอบ
ส่วนนี้มีชุดหลักเกณฑ์และแนวทางปฏิบัติแนะนำสำหรับการทดสอบการติดตั้งใช้งาน
ทดสอบ PrepareEnvironment
รับสถานะปัจจุบันของอุปกรณ์: EMM จะเรียกใช้
adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
เพื่อรับเวอร์ชันของ Android Device Policy ที่มีอยู่ในอุปกรณ์ หากไม่ได้ติดตั้ง นโยบายอุปกรณ์ Android คุณจะเห็นเอาต์พุตที่ว่างเปล่า
ผสานรวม PrepareEnvironment: DPC ที่กำหนดเองจะเรียกใช้
prepareEnvironment
API ใน AMAPI SDK โดยส่งคำขอที่ถูกต้องรอผลลัพธ์ PrepareEnvironment: DPC ที่กำหนดเองจะรอให้
prepareEnvironment
เสร็จสมบูรณ์ยืนยันว่า PrepareEnvironment สำเร็จ: เมื่อเสร็จสิ้น EMM จะทำงานอีกครั้ง
adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
คราวนี้เวอร์ชันนโยบายอุปกรณ์ Android ควรสูงกว่าในขั้นตอนที่ 1
ทดสอบการตรวจสอบสิทธิ์บัญชี Google
- สร้างองค์กรทดสอบ: EMM สร้างโดเมนทดสอบขององค์กร Google
ที่ลิงก์กับ EMM ทดสอบ โดยมี
enterprises.generateSignupUrl
- เปิดใช้การตรวจสอบสิทธิ์ของ Google: EMM เปิดใช้การตรวจสอบสิทธิ์ของ Google สำหรับ องค์กรทดสอบโดยทำตามวิธีการเหล่านี้ ในคอนโซลผู้ดูแลระบบของ Google
- สร้างโทเค็นการลงทะเบียน: EMM สร้างโทเค็นการลงทะเบียนโดยใช้ Play EMM API ที่มีประเภท userDevice
- เริ่มการลงทะเบียน: DPC ที่กำหนดเองจะเรียกใช้
startAccountSetup
API ใน AMAPI SDK โดยส่งโทเค็นการลงทะเบียน - ต้องเปิดใช้กิจกรรม: AMAPI SDK จะแจ้ง DPC ที่กำหนดเองว่าต้องเปิดใช้กิจกรรมเพื่อตรวจสอบสิทธิ์ผู้ใช้
- ตรวจสอบสิทธิ์ผู้ใช้: DPC ที่กำหนดเองเรียกใช้
launchAuthenticationActivity
เพื่อเริ่มกิจกรรม ผู้ใช้จะตรวจสอบสิทธิ์ด้วยบัญชี Google ที่มีการจัดการ (ส่วนหนึ่งขององค์กรที่สร้างในขั้นตอนที่ 1) - ลงทะเบียนให้เสร็จสมบูรณ์: AMAPI SDK จะแจ้งผลการลงทะเบียนให้ DPC ที่กำหนดเองทราบ
ทดสอบการข้ามการตรวจสอบสิทธิ์ด้วย Google
เราจะใช้การตั้งค่าที่อธิบายไว้ก่อนหน้านี้
คราวนี้ในขั้นตอนที่ 7 ผู้ใช้จะกดข้ามแทนการตรวจสอบสิทธิ์ด้วย
บัญชี Google การลงทะเบียนเสร็จสมบูรณ์โดยมีบัญชีบริการ
ในอุปกรณ์ (เช่น AuthenticationType
เป็นแบบไม่ระบุตัวตน)
ทดสอบอุปกรณ์ที่ไม่มีผู้ใช้
ขั้นตอนการลงทะเบียน DPC ที่กำหนดเองที่ปรับปรุงแล้วจะใช้ขั้นตอนต่อไปนี้เมื่อปิดใช้การตรวจสอบสิทธิ์ของ Google
- สร้างองค์กรทดสอบ: องค์กรนี้อาจเป็นองค์กรเดียวกับที่สร้าง ไว้ก่อนหน้านี้
- สร้างโทเค็นการลงทะเบียน: EMM สร้างโทเค็นการลงทะเบียนโดยใช้ Play EMM API ที่มีประเภท userlessDevice
- เริ่มการลงทะเบียน: DPC ที่กำหนดเองจะเรียกใช้
startAccountSetup
API ใน AMAPI SDK โดยส่งโทเค็นการลงทะเบียน - ลงทะเบียนให้เสร็จสมบูรณ์: AMAPI SDK จะแจ้งผลการลงทะเบียนให้ DPC ที่กำหนดเองทราบ