การจัดสรรอุปกรณ์ทำได้หลายวิธี ข้อกำหนดทางธุรกิจของลูกค้าจะเป็นตัวกำหนดวิธีการจัดสรรที่คุณจะใช้
ข้อมูลเบื้องต้นเกี่ยวกับการจัดสรรอุปกรณ์
สถานการณ์การติดตั้งใช้งานการจัดสรรอุปกรณ์ที่ลูกค้าต้องการสนับสนุน (เช่น การนำอุปกรณ์มาใช้เองหรือของบริษัท) จะกำหนดโหมดการดำเนินการที่คุณจะใช้ (เช่น โหมดเจ้าของอุปกรณ์หรือโหมดเจ้าของโปรไฟล์) ในทำนองเดียวกัน โหมดการดำเนินการและรุ่น Android ที่คุณต้องรองรับจะเป็นตัวกำหนดวิธีการจัดสรรที่คุณจะใช้
สถานการณ์การติดตั้งใช้งาน
ในสถานการณ์การทำให้ใช้งานได้ที่เป็นของบริษัท องค์กรจะเป็นเจ้าของและควบคุมอุปกรณ์ที่พนักงานใช้ได้อย่างเต็มที่ โดยทั่วไป องค์กรจะใช้อุปกรณ์ที่บริษัทเป็นเจ้าของเมื่อต้องการตรวจสอบและจัดการอุปกรณ์ทั้งหมดอย่างเข้มงวด
บริษัทที่สนับสนุนวิธีนำ BYOD ไปใช้งานช่วยให้พนักงานสามารถนำอุปกรณ์ที่เป็นของส่วนตัวมาใช้ในการทำงาน ตลอดจนใช้อุปกรณ์เหล่านั้นเพื่อเข้าถึงข้อมูลและแอปพลิเคชันของบริษัทที่มีสิทธิพิเศษได้
โหมดการทำงาน
โหมดการทำงานของเจ้าของอุปกรณ์รองรับการทำให้ใช้งานได้ของบริษัท ใน Android แอปการจัดการจะเรียกว่าตัวควบคุมนโยบายด้านอุปกรณ์ (DPC) DPC บังคับใช้นโยบายในอุปกรณ์ Android และเมื่ออุปกรณ์ทำหน้าที่เป็นเจ้าของอุปกรณ์ อุปกรณ์จะจัดการอุปกรณ์ทั้งหมด ในฐานะเจ้าของอุปกรณ์ DPC สามารถดำเนินการต่างๆ แบบทั้งอุปกรณ์ เช่น กำหนดค่าการเชื่อมต่อทั้งอุปกรณ์ กำหนดการตั้งค่าส่วนกลาง และรีเซ็ตเป็นค่าเริ่มต้น
การนำอุปกรณ์มาใช้เองสามารถใช้งานได้โดยโหมดการดำเนินการของเจ้าของโปรไฟล์ องค์กรเปิดใช้อุปกรณ์ส่วนตัวเพื่อการทำงานผ่าน DPC โดยเพิ่มโปรไฟล์งานไปยังบัญชีผู้ใช้หลักในอุปกรณ์ โปรไฟล์งานจะเชื่อมโยงกับผู้ใช้หลัก แต่เป็นโปรไฟล์แยกต่างหาก ในฐานะเจ้าของโปรไฟล์ DPC จะจัดการเฉพาะโปรไฟล์งานในอุปกรณ์ และมีการควบคุมที่จำกัดนอกโปรไฟล์งาน
การทำให้อุปกรณ์เดิมใช้งานได้จะรองรับด้วยโหมดการทำงานเดิม ซึ่งทำให้ DPC ควบคุมอุปกรณ์ได้แบบจำกัด (เช่น ความสามารถในการล้างข้อมูลอุปกรณ์ ต้องใช้รหัสผ่าน หรือบังคับใช้นโยบายบางอย่าง) คุณจัดการแอปในอุปกรณ์เดิมผ่าน Google Play ได้โดยอนุญาตให้ผู้ใช้เพิ่มบัญชี Google หรือให้ DPC เพิ่มบัญชี Managed Google Play ลงในอุปกรณ์เดิม
ไม่แนะนำให้ใช้โหมดเดิมสำหรับการทำให้ใช้งานได้ ซึ่งคุณสามารถใช้โหมดเจ้าของอุปกรณ์หรือโหมดเจ้าของโปรไฟล์ คุณควรใช้การจัดการอุปกรณ์ในระดับสูงสุดเท่าที่ทำได้ แทนที่จะใช้โซลูชัน "ตัวส่วนร่วมต่ำสุด" ในกลุ่มขนาดใหญ่
วิธีการจัดสรรเจ้าของอุปกรณ์
คุณต้องจัดสรรโหมดการทำงานของเจ้าของอุปกรณ์ในระหว่างการตั้งค่าเริ่มต้นของอุปกรณ์ใหม่หรือหลังการรีเซ็ตเป็นค่าเริ่มต้น ไม่สามารถจัดสรรโหมดเจ้าของอุปกรณ์ ในอุปกรณ์เหล่านี้ได้ตลอดเวลา
วิธีการจัดสรรมี 2 ประเภทหลักๆ สำหรับการจัดสรรโหมดเจ้าของอุปกรณ์ ทั้งนี้ขึ้นอยู่กับกรณีการใช้งาน
- ในกระบวนการที่ขับเคลื่อนด้วยอุปกรณ์ ผู้ดูแลระบบไอทีจะใช้ NFC เพื่อจัดสรรอุปกรณ์จำนวนมากได้ ขั้นตอนนี้จะใช้ได้กับบัญชี Managed Google Play หรือสถานการณ์ใน G Suite
- ในขั้นตอนที่ขับเคลื่อนโดยผู้ใช้ ตัวเลือกต่างๆ จะขึ้นอยู่กับว่าองค์กรใช้ G Suite หรือไม่
- ในสถานการณ์ของ G Suite ผู้ใช้จะเพิ่มบัญชี Google ของตนระหว่างการตั้งค่าอุปกรณ์เริ่มต้น และ DPC ต้องแนะนำผู้ใช้ผ่านขั้นตอนในการตั้งค่าเจ้าของอุปกรณ์ ขั้นตอนที่ผู้ใช้ดำเนินการจะช่วยผู้ใช้ปลายทางตั้งค่าอุปกรณ์ใหม่ และยังเป็นอีกทางเลือกหนึ่งในกรณีที่อุปกรณ์ไม่รองรับ NFC
- เมื่อองค์กรไม่ได้ใช้ G Suite คุณควรใช้เมธอดบัญชี Managed Google Play
หมายเหตุ: หากคุณจำกัดการเผยแพร่แอปไว้เฉพาะบางประเทศใน Play ระบบจะไม่สนใจข้อจำกัดเหล่านี้ในระหว่างการจัดสรรเจ้าของอุปกรณ์ ระบบจะดาวน์โหลด DPC แม้ว่าอุปกรณ์ไม่ได้อยู่ในประเทศเป้าหมาย
วิธีการจัดสรรของเจ้าของโปรไฟล์
วิธีที่แนะนำในการจัดสรรโหมดการทำงานของเจ้าของโปรไฟล์จะขึ้นอยู่กับว่าองค์กรใช้ G Suite หรือไม่
- ในกรณีของ G Suite วิธีที่แนะนำคือขั้นตอนที่ผู้ใช้ดำเนินการซึ่งผู้ใช้เพิ่ม บัญชี Google ของผู้ใช้ และ DPC จะแนะนำขั้นตอนในการตั้งค่าเจ้าของโปรไฟล์ให้ผู้ใช้ทราบ
- เมื่อองค์กรไม่ได้ใช้ G Suite วิธีการที่แนะนำคือบัญชี Managed Google Play
วิธีการดั้งเดิมที่ผู้ใช้จะได้รับคําแนะนําให้ติดตั้ง DPC ด้วยตนเอง ก็จะรองรับวิธีการเดิมเช่นกัน ซึ่งอาศัยผู้ใช้ในการดาวน์โหลด DPC จาก Google Play และติดตั้ง จากนั้น DPC จะแนะนำผู้ใช้ในขั้นตอนที่เหลือในการตั้งค่าเจ้าของโปรไฟล์
วิธีการจัดสรรสำหรับอุปกรณ์เดิม
อุปกรณ์เดิมใช้ Android เวอร์ชันเก่ากว่า 5.0 หรือไม่รองรับโปรไฟล์งาน วิธีที่แนะนำในการจัดสรรอุปกรณ์เดิมจะขึ้นอยู่กับว่าองค์กรใช้บัญชี Google ที่มีการจัดการหรือไม่
- ในกรณีของบัญชี Google ที่มีการจัดการ วิธีการที่แนะนำคือขั้นตอนที่ผู้ใช้ดำเนินการซึ่งผู้ใช้เพิ่มบัญชี Google ของตน และ DPC จะแนะนำผู้ใช้ในขั้นตอนการตั้งค่า
- เมื่อองค์กรไม่ได้ใช้บัญชี Google ที่มีการจัดการ วิธีการที่แนะนำคือบัญชี Managed Google Play ซึ่งผู้ใช้ติดตั้ง DPC จาก Google Play DPC สามารถเพิ่มบัญชี Managed Google Play ลงในอุปกรณ์ระบบเดิม เช่นเดียวกับที่เพิ่มบัญชีลงในโปรไฟล์งาน
ด้วยวิธีการดั้งเดิมที่ผู้ใช้จะได้รับคำแนะนำให้ติดตั้ง DPC ด้วยตนเอง จากนั้น DPC จะเพิ่มบัญชี Google ได้ ซึ่งอาศัยผู้ใช้ในการดาวน์โหลด DPC จาก Google Play และติดตั้ง จากนั้น DPC จะแนะนำผู้ใช้ในขั้นตอนที่เหลือในการตั้งค่า
ความแตกต่างของการจัดสรรที่สำคัญใน Android เวอร์ชันต่างๆ
สถานการณ์ การทำให้ใช้งานได้ |
โหมด ของการดำเนินงาน |
วิธี การจัดสรร |
*ก่อนเริ่มต้น 5.0 |
5.0, 5.1 |
6.0 ไว้ทีหลัง |
7.0 ไว้ทีหลัง |
เป็นของบริษัท | เจ้าของอุปกรณ์ | คิวอาร์โค้ด | ✓ | |||
บัญชี Managed Google Play | ✓ | ✓ | ||||
บัญชี Google | ✓ | ✓ | ||||
NFC | ✓ | ✓ | ✓ | |||
รุ่นเดิม | บัญชี Managed Google Play | ✓ | ||||
บัญชี Google | ✓ | |||||
การนำอุปกรณ์มาใช้เอง | เจ้าของโปรไฟล์ | บัญชี Managed Google Play | ✓ | ✓ | ✓ | |
บัญชี Google | **5.1 | ✓ | ✓ | |||
การติดตั้ง DPC ด้วยตนเอง | ✓ | ✓ | ✓ | |||
รุ่นเดิม | บัญชี Managed Google Play | ✓ | ||||
บัญชี Google | ✓ | |||||
การติดตั้ง DPC ด้วยตนเอง | ✓ |
*โหมดเดิมยังเหมาะสำหรับอุปกรณ์ที่ไม่รองรับโปรไฟล์งาน แม้ว่าอุปกรณ์จะใช้ Android เวอร์ชันที่ใหม่กว่า 5.0 ก็ตาม โดยปกติแล้วจะเป็นอุปกรณ์ที่มี RAM น้อย
**วิธีการของบัญชี Google ใน Android 5.1 รองรับเฉพาะโหมดการทำงานของเจ้าของโปรไฟล์ และผู้ใช้สามารถกำหนดค่าได้จากการตั้งค่า > เพิ่มบัญชีเท่านั้น
ข้อควรพิจารณาทั่วไปในการใช้งาน
ต่อไปนี้คือข้อควรพิจารณาเมื่อเขียน DPC ไม่ว่าจะใช้โหมดใดก็ตาม
ความเข้ากันได้กับบริการ Google Play
คู่มือ APK ของบริการ Google Play จะแนะนำนักพัฒนาแอปให้ตรวจสอบเวอร์ชันของบริการ Google Play ก่อนทำธุรกรรม API เนื่องจากการพยายามอัปเดตบริการ Google Play จะทำให้ขั้นตอนการตั้งค่าอุปกรณ์หยุดชะงัก DPC จึงต้องไม่พยายามอัปเดตบริการ Google Play ก่อนที่การจัดสรรอุปกรณ์จะเสร็จสมบูรณ์
ประเด็นสำคัญเกี่ยวกับความเข้ากันได้ของ DPC กับบริการ Google Play มีดังนี้
- DPC ควรทำงานโดยใช้บริการ Google Play ที่มาพร้อมกับอุปกรณ์นั้นๆ
- DPC ไม่ควรอาศัยฟีเจอร์ใหม่ในบริการ Google Play เวอร์ชันต่อๆ ไปซึ่งพร้อมใช้งานในขณะจัดสรรอุปกรณ์
เมื่อการจัดสรรอุปกรณ์เสร็จสมบูรณ์แล้ว DPC จะแจ้งผู้ใช้ให้อัปเดตบริการ Google Play เพื่อให้ DPC ใช้ฟีเจอร์ล่าสุดได้ อย่างไรก็ตาม หากฟีเจอร์ไม่พร้อมใช้งานด้วยเหตุผลบางประการ DPC จะต้องกลับไปใช้เวอร์ชันที่มาพร้อมกับอุปกรณ์อย่างราบรื่น
กำลังเรียกรายละเอียดอุปกรณ์
เนื่องจากความล่าช้าในการนำไปใช้งาน ระบบอาจใช้เวลาถึง 2 นาทีก่อนที่จะเรียกอุปกรณ์ที่ลงทะเบียนใหม่ อุปกรณ์ที่ลงทะเบียนใหม่จึงจะส่งรายละเอียดของอุปกรณ์กลับมา
หากเวิร์กโฟลว์ของคุณต้องการรายละเอียดก่อนที่ผู้ใช้ปลายทางจะใช้อุปกรณ์หรือโปรไฟล์งานได้ เราขอแนะนำให้ใช้หน้าจอความคืบหน้าใน DPC และรอจนกว่าการโทรจะสำเร็จ
ข้อควรพิจารณาสําหรับการใช้งานโหมดเจ้าของโปรไฟล์
ต่อไปนี้เป็นสิ่งที่ควรพิจารณาเมื่อคุณเขียน DPC เพื่อใช้โหมดการทำงานของเจ้าของโปรไฟล์
นำ DPC ส่วนบุคคลออกหรือปิดใช้
เมื่อจัดสรรโหมดการทำงานของเจ้าของโปรไฟล์ DPC จะเริ่มต้นทำงานในโปรไฟล์ส่วนตัวและเริ่มต้นกระบวนการสร้างโปรไฟล์งาน เมื่อสร้างโปรไฟล์งานแล้ว DPC จะทำงานภายในโปรไฟล์งานด้วย DPC ในโปรไฟล์งานดำเนินการจัดสรรให้เสร็จสมบูรณ์ ซึ่งในจุดนั้น DPC ในโปรไฟล์ส่วนตัวควรปิดใช้ตัวเอง หรือผู้ใช้อุปกรณ์ควรนำออก
ผู้ใช้นำ DPC ส่วนบุคคลออก
- DPC ส่วนบุคคลจะคอยฟัง
ACTION_MANAGED_PROFILE_PROVISIONED.
(สำหรับอุปกรณ์ Android 5.1 DPC ส่วนตัวควรรับACTION_MANAGED_PROFILE_ADDED
แทน) - DPC ส่วนบุคคลเริ่มส่งคำขอถอนการติดตั้ง
ACTION_UNINSTALL_PACKAGE
การดำเนินการนี้แจ้งให้ผู้ใช้ถอนการติดตั้ง DPC ส่วนบุคคล ขั้นตอนการถอนการติดตั้งควรเกิดขึ้นในระหว่างขั้นตอนการจัดสรรเพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ดีที่สุด
DPC ส่วนบุคคลปิดใช้ตัวเอง
- DPC ส่วนบุคคลจะคอยฟัง
ACTION_MANAGED_PROFILE_PROVISIONED.
(สำหรับอุปกรณ์ Android 5.1 DPC ส่วนตัวควรรับACTION_MANAGED_PROFILE_ADDED
แทน) - ในกรณีที่เกี่ยวข้อง DPC ส่วนบุคคลควรถอนสิทธิ์ผู้ดูแลระบบของอุปกรณ์ก่อนที่จะปิดใช้ตัวเอง
- DPC ส่วนบุคคลเริ่มคำขอปิดใช้
setApplicationEnabledSetting
ที่มีพารามิเตอร์COMPONENT_ENABLED_STATE_DISABLED
- ผู้ใช้สามารถเปิดใช้ DPC ส่วนตัวอีกครั้งจาก Google Play ได้
ข้อควรพิจารณาในการใช้งานโหมดเจ้าของอุปกรณ์
ต่อไปนี้เป็นสิ่งที่ควรพิจารณาเมื่อคุณเขียน DPC เพื่อใช้โหมดการทำงานของเจ้าของอุปกรณ์
อุปกรณ์ต้องเป็นเครื่องใหม่หรือรีเซ็ตเป็นค่าเริ่มต้น
คุณต้องจัดสรรโหมดการทำงานของเจ้าของอุปกรณ์ในระหว่างการตั้งค่าเริ่มต้นของอุปกรณ์ใหม่หรือหลังการรีเซ็ตเป็นค่าเริ่มต้น ไม่สามารถจัดสรรโหมดเจ้าของอุปกรณ์ในอุปกรณ์ในเวลาอื่นๆ ได้
โหมดเจ้าของอุปกรณ์ช่วยให้ DPC ควบคุมอุปกรณ์ได้โดยสมบูรณ์ หากอนุญาตการจัดสรรโหมดเจ้าของอุปกรณ์หลังการตั้งค่าเริ่มต้น จะเป็นดังนี้
- มัลแวร์อาจทำให้เจ้าของอุปกรณ์และเข้าควบคุมอุปกรณ์ได้
- ปัญหาด้านความเป็นส่วนตัวอาจเกิดขึ้นได้หากมีข้อมูลผู้ใช้หรือแอปบางแอปในอุปกรณ์อยู่แล้ว
ตั้งค่าโหมดเจ้าของอุปกรณ์เฉพาะในอุปกรณ์ของบริษัทเท่านั้น
คุณควรจัดสรรโหมดเจ้าของอุปกรณ์เฉพาะในอุปกรณ์ที่คุณระบุว่าบริษัทของลูกค้าเป็นเจ้าของเท่านั้น คุณยืนยันได้โดยตรวจหาตัวระบุอุปกรณ์ที่ไม่ซ้ำ (เช่น หมายเลขซีเรียล) หรือใช้ชุดบัญชีเฉพาะซึ่งได้รับอนุญาตสำหรับการลงทะเบียนอุปกรณ์ผ่านนโยบาย EMM ของคุณ
หากยืนยันการเป็นเจ้าของอุปกรณ์ของบริษัทไม่ได้ คุณต้องสร้างกลไกการป้องกันความผิดพลาดเพื่อไม่ให้มีการจัดสรรโหมดเจ้าของอุปกรณ์โดยไม่ได้ตั้งใจ ตัวอย่างเช่น คุณสามารถแจ้งให้ผู้ใช้อุปกรณ์ยืนยันหรือดำเนินการยืนยันบางอย่างก่อนจัดสรรโหมดเจ้าของอุปกรณ์ได้
เปิดใช้แอประบบ
เมื่อ DPC จัดสรรโปรไฟล์งาน ระบบจะถือว่าแอประบบทั้งหมดที่ไม่มีไอคอน Launcher มีความสำคัญต่ออุปกรณ์และได้รับอนุญาตให้ทำงานในโปรไฟล์งานโดยอัตโนมัติ ระบบจะถือว่าแอประบบที่มีไอคอน Launcher เป็นแบบไม่บังคับ และคุณเลือกได้ว่าจะเปิดใช้หรือไม่
เปิดใช้แอประบบผ่าน Google Play
การเปิดใช้แอประบบโดยใช้ Google Play ทำได้ง่ายและผู้ใช้จะได้รับการอัปเดตแอปเมื่อพร้อมให้บริการ
เปิดใช้แอประบบโดยใช้ API เฟรมเวิร์กของ Android
หากต้องการให้ผู้ใช้เห็นแอประบบทันทีที่เริ่มใช้งานอุปกรณ์ ให้เปิดใช้แอประบบในขั้นตอนการจัดสรรอุปกรณ์ DPC เปิดใช้แอประบบตามชื่อแพ็กเกจหรือ Intent โดยใช้ DevicePolicyManager.enableSystemApp()
มี 2-3 วิธีในการระบุแอประบบที่คุณต้องการเปิดใช้และนำเสนอในคอนโซล EMM ต่อผู้ดูแลระบบไอที
สร้างแคตตาล็อกแอประบบ
วิธีนี้ อุปกรณ์แต่ละเครื่องจะเป็นตัวกำหนดว่าแอปใดอยู่ในอุปกรณ์ และส่งข้อมูลนี้กลับไปยังคอนโซล EMM โดยคอนโซล EMM จะแสดงข้อมูลนี้แบบไดนามิกเมื่อสร้างนโยบายด้านอุปกรณ์ ซึ่งช่วยให้ผู้ดูแลระบบไอทีสามารถจัดการแอปแบบรายแอปได้
- หากยังไม่ได้จัดสรรโปรไฟล์งานในอุปกรณ์ ให้ดึงรายการแอปทั้งหมดที่มีไอคอน Launcher ในอุปกรณ์โดยใช้
queryIntentActivities()
ดังนี้
private List
getAppsWithLauncher() {
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
return getPackageManager().queryIntentActivities(i, 0);
} - หากมีการจัดสรรโปรไฟล์งานในอุปกรณ์แล้ว ให้ดึงรายการแอปทั้งหมดในโปรไฟล์งานโดยใช้
PackageManager.GET_DISABLED_COMPONENTS
และPackageManager.GET_UNINSTALLED_PACKAGES
- ค้นหาแอประบบในรายการแอปโดยเลือก
FLAG_SYSTEM
ซึ่งจะระบุว่าติดตั้งแอปในอิมเมจระบบของอุปกรณ์หรือไม่
ข้อดี
- ให้ผู้ดูแลระบบไอทีเห็นภาพที่สมบูรณ์ของแอปในทุกอุปกรณ์
- ให้การควบคุมแบบละเอียดเกี่ยวกับแอปที่เปิดใช้งาน
ข้อเสีย
- เนื่องจากอุปกรณ์แต่ละเครื่องมีแคตตาล็อกแอปที่แตกต่างกัน ดังนั้นการใช้โมเดลการกำหนดค่านโยบายเดียวกับอุปกรณ์หลายประเภทจึงเป็นเรื่องยาก
- การนำเสนอแอปสำหรับ OEM โดยเฉพาะจำนวนมากในลักษณะที่เป็นประโยชน์สำหรับผู้ดูแลระบบไอทีอาจเป็นเรื่องยาก
จัดหมวดหมู่แอประบบตามฟังก์ชันการทำงาน
เมื่อผู้ดูแลระบบไอทีต้องการเปิดใช้แอประบบให้กับกลุ่มอุปกรณ์ ผู้ดูแลระบบจะเลือกแอปทั่วไปตามฟังก์ชันการทำงาน เช่น "เบราว์เซอร์ระบบ" จากนั้น DPC จะอนุญาตแอประบบทั้งหมดสำหรับ Intent ดังกล่าว
ข้อดี
- เปิดใช้งานที่เรียบง่ายและอิงตามฟังก์ชันสำหรับผู้ดูแลระบบไอที
- ดูแลให้มีฟังก์ชันการทำงานที่สอดคล้องกันในอุปกรณ์ที่หลากหลาย (อย่างน้อยก็สำหรับกรณีการใช้งานทั่วไป)
ข้อเสีย
- จำกัดแอประบบไว้เฉพาะแอปที่รองรับในอุปกรณ์ทุกประเภท
- ผู้ดูแลระบบไอทีอาจต้องพุชแอปเวอร์ชัน OEM (เช่น เบราว์เซอร์ Samsung®) แต่ไม่ใช่เวอร์ชันอื่น (เช่น เบราว์เซอร์ LG®)
- ผู้ดูแลระบบไอทีอาจไม่ต้องการพุชแอปหลายแอป แต่ก็ป้องกันไม่ได้เมื่อมีตัวแฮนเดิล Intent หลายตัว
รองรับเฉพาะแอปของระบบที่ได้รับอนุมัติเท่านั้น
คุณทำงานร่วมกับ OEM เพื่อระบุแพ็กเกจ OEM ที่เฉพาะเจาะจงและรองรับเฉพาะแพ็กเกจเหล่านั้นภายในคอนโซล EMM เท่านั้น นอกจากนี้ ยังช่วยให้คุณจัดทำแคตตาล็อกการกำหนดค่าที่มีการจัดการสำหรับแอป OEM ได้ ซึ่งคุณจะไม่ทราบเป็นอย่างอื่นเนื่องจากแอป OEM ไม่ได้โฮสต์อยู่ใน Google Play
ข้อดี
- ช่วยลดความยุ่งยากของเวิร์กโฟลว์การผสานรวม และขจัดปัญหา Edge Case ที่เป็นปัญหาใน 2 ตัวเลือกแรก
- คุณแคตตาล็อกการกำหนดค่าที่มีการจัดการสำหรับแอป OEM แล้วนำเสนอในคอนโซล EMM สำหรับผู้ดูแลระบบไอทีได้
- สร้างความสัมพันธ์ใกล้ชิดกับ OEM เพื่อรองรับอุปกรณ์หลัก
ข้อเสีย
- รองรับการปรับขนาดได้น้อยลง และทำให้ผู้บริโภคตัดสินใจน้อยลง
ข้อควรพิจารณาเกี่ยวกับการใช้งาน สำหรับโหมดเดิม
ต่อไปนี้เป็นสิ่งที่ควรพิจารณาเมื่อเขียน DPC เพื่อนำโหมดการทำงานเดิมไปใช้
ดูว่าอุปกรณ์รองรับโปรไฟล์งานหรือไม่
สำหรับอุปกรณ์ที่ไม่รองรับโปรไฟล์งาน คุณสามารถจัดสรรโหมดการทำงานเดิมได้ อุปกรณ์ไม่รองรับโปรไฟล์งานเมื่ออุปกรณ์มีลักษณะต่อไปนี้
- ใช้ Android เวอร์ชันที่เก่ากว่า 5.0
- มี RAM ต่ำแม้ว่าจะใช้ Android เวอร์ชันที่ใหม่กว่า 5.0 ก็ตาม
ทั้งนี้ DPC จะใช้ PackageManager ได้เพื่อดูว่ามีการรองรับโปรไฟล์งานหรือไม่
if (!getPackageManager().hasSystemFeature(
PackageManager.FEATURE_MANAGED_USERS)) {
// Use legacy mode
...
}
สถานการณ์การทดสอบสำหรับ DPC ของคุณ
Test DPC เป็นแอปโอเพนซอร์สที่ Google มีให้สำหรับการทดสอบฟังก์ชันการทำงานขององค์กรในแอป DPC ของคุณ การทดสอบ DPC มีให้บริการใน github หรือ Google Play คุณใช้ Test DPC เพื่อดำเนินการต่อไปนี้ได้
- จำลองฟีเจอร์ต่างๆ ใน Android
- ตั้งค่าและบังคับใช้นโยบาย
- ตั้งค่าการจำกัดแอปและ Intent
- ตั้งค่าโปรไฟล์งาน
- ตั้งค่าอุปกรณ์ Android ที่มีการจัดการครบวงจร
แม้ว่า Test DPC มีไว้เพื่อเป็นยานพาหนะในการทดสอบโซลูชันองค์กรของคุณสำหรับ Android เป็นหลัก แต่คุณก็ใช้เป็นแหล่งที่มาของโค้ดตัวอย่างสำหรับฟีเจอร์ Android ได้เช่นกัน
ปรับแต่งการจัดสรร
ในระหว่างการจัดเตรียมอุปกรณ์ อินเทอร์เฟซผู้ใช้ของระบบจะแสดงสีเริ่มต้นในแถบสถานะและโลโก้เริ่มต้นที่ด้านบนของหน้าจอ ตั้งค่าสีและโลโก้ที่กำหนดเองเพื่อให้การเปลี่ยนภาพระหว่าง DPC กับอินเทอร์เฟซของระบบสอดคล้องกัน หรือให้ผู้ดูแลระบบดำเนินการดังกล่าวโดยใช้คอนโซล EMM เช่น ผู้ดูแลระบบอาจอัปโหลดโลโก้บริษัทหรือปรับแต่งรูปลักษณ์ของหน้าจอที่แสดงการแจ้งเตือน
DPC จะบังคับใช้ตัวเลือกสีและโลโก้โดยใช้ส่วนเสริมของ DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
และ DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
หากต้องการตั้งค่าสีที่กำหนดเอง ให้ใช้ EXTRA_PROVISIONING_MAIN_COLOR
เพื่อกำหนดจำนวนเต็มที่ระบุสีหลักเพื่อแสดงในระหว่างการจัดสรรอุปกรณ์ ใส่ส่วนเพิ่มเติม (คงที่) ใน Intent ด้วย ACTION_PROVISION_MANAGED_PROFILE
หรือ ACTION_PROVISION_MANAGED_DEVICE
หากต้องการดูการแสดงจำนวนเต็ม โปรดดูที่สี ตัวอย่างเช่น ดู MAIN_COLOR
ในแอป TestDPC
หากต้องการตั้งค่าโลโก้ที่กำหนดเอง ให้ใช้ EXTRA_PROVISIONING_LOGO_URI
เพื่อตั้งค่ารูปภาพที่จะแสดงที่ด้านบนของหน้าจอในระหว่างการจัดเตรียมอุปกรณ์ ใส่สิ่งที่เพิ่ม (คงที่) ใน Intent ด้วย ACTION_PROVISION_MANAGED_PROFILE
หรือ ACTION_PROVISION_MANAGED_DEVICE
ตรวจสอบว่ารูปภาพมีความหนาแน่นของพิกเซลที่สมเหตุสมผลสำหรับอุปกรณ์
ตัวอย่างเช่น ดู LOGO_URI
ในแอป TestDPC
วิธีที่ใช้คิวอาร์โค้ด
วิธีการจัดสรรคิวอาร์โค้ดจะตั้งค่าและกำหนดค่าโหมดเจ้าของอุปกรณ์โดยการสแกนคิวอาร์โค้ดจากวิซาร์ดการตั้งค่า คิวอาร์โค้ดมีเพย์โหลดของคู่คีย์-ค่าพร้อมข้อมูลทั้งหมดที่จำเป็นสำหรับ DPC ในการจัดสรรอุปกรณ์
คอนโซล EMM ควรช่วยให้ผู้ดูแลระบบไอทีสร้างคิวอาร์โค้ดสำหรับอุปกรณ์ที่ต้องการจัดสรรได้ ผู้ดูแลระบบไอทีจะส่งคิวอาร์โค้ดให้ผู้ใช้ปลายทาง และผู้ใช้ปลายทางก็จัดเตรียมอุปกรณ์ให้โดยสแกนคิวอาร์โค้ด
กรณีการใช้งานสำหรับการจัดสรรคิวอาร์โค้ด
อุปกรณ์บางอย่าง เช่น แท็บเล็ต ไม่รองรับ NFC การจัดสรรคิวอาร์โค้ดเป็น วิธีง่ายๆ ในการจัดสรรกลุ่มอุปกรณ์ซึ่งไม่รองรับ NFC ผู้ดูแลระบบไอทีสามารถส่งคิวอาร์โค้ดให้ผู้ใช้เพื่ออนุญาตการจัดสรรที่ขับเคลื่อนโดยผู้ใช้
การจัดสรรคิวอาร์โค้ดไม่จำเป็นต้องใช้ข้อมูลประจำตัวของ Google เช่น โดเมน Google หรือบัญชี Google องค์กรที่ใช้ Android แต่ไม่ได้ใช้ G Suite จะไม่มีข้อมูลประจำตัวของ Google
เช่นเดียวกับ NFC การจัดสรรคิวอาร์โค้ดจะทำให้คีออสก์และการใช้งานแบบใช้ครั้งเดียวไม่จำเป็นต้องใช้ข้อมูลประจำตัวของ Google (หรือข้อมูลประจำตัวใดๆ) ที่ไม่จำเป็น ตัวอย่างเช่น อุปกรณ์คีออสก์ในร้านค้าเป็นของคนอื่น และไม่ควรมีตัวตนของผู้ใช้ปลายทาง
สร้างคิวอาร์โค้ด
คิวอาร์โค้ดที่ถูกต้องสำหรับการจัดสรรคิวอาร์โค้ดคือสตริง JavaScript® Object® Object (JSON) ที่เข้ารหัสแบบ UTF-8 คุณใส่ที่พักเหล่านี้ในคิวอาร์โค้ดที่ถูกต้องได้
จำเป็นเสมอ
ต้องระบุหากยังไม่ได้ติดตั้ง DPC ในอุปกรณ์
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM
แนะนำหากอุปกรณ์ยังไม่ได้เชื่อมต่อ Wi-Fi
ไม่บังคับ
EXTRA_PROVISIONING_LOCALE
EXTRA_PROVISIONING_TIME_ZONE
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_COOKIE_HEADER
EXTRA_PROVISIONING_LOCAL_TIME
EXTRA_PROVISIONING_WIFI_HIDDEN
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
EXTRA_PROVISIONING_WIFI_PROXY_HOST
EXTRA_PROVISIONING_WIFI_PROXY_PORT
EXTRA_PROVISIONING_WIFI_PROXY_BYPASS
EXTRA_PROVISIONING_WIFI_PAC_URL
EXTRA_PROVISIONING_SKIP_ENCRYPTION
ตัวอย่างนี้สร้างคิวอาร์โค้ดที่ถูกต้อง
{ "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "com.emm.android/com.emm.android.DeviceAdminReceiver", "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM": "gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w=", "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION": "https://path.to/dpc.apk", "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false, "android.app.extra.PROVISIONING_WIFI_SSID": "GuestNetwork", "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": { "dpc_company_name": "Acme Inc.", "emm_server_url": "https://server.emm.biz:8787", "another_custom_dpc_key": "dpc_custom_value" } }
ขั้นตอนการจัดเตรียมคิวอาร์โค้ด
- วิซาร์ดการตั้งค่าจะแจ้งให้ผู้ใช้แตะหน้าจอต้อนรับ 6 ครั้ง การแตะต้องทำในตำแหน่งเดียวกันบนหน้าจอ
- วิซาร์ดการตั้งค่าจะแจ้งให้ผู้ใช้เชื่อมต่ออินเทอร์เน็ตเพื่อให้วิซาร์ดการตั้งค่าดาวน์โหลดโปรแกรมอ่านคิวอาร์โค้ดได้
- บริการ Google Play จะดาวน์โหลดโมดูลที่มีเครื่องมือจดจำคิวอาร์โค้ด
- ผู้ใช้จะสแกนคิวอาร์โค้ดที่ได้รับจากผู้ดูแลระบบไอที
- วิซาร์ดการตั้งค่าจะดาวน์โหลดแอป DPC และเริ่มขั้นตอนการจัดสรรเจ้าของอุปกรณ์โดยใช้
ACTION_PROVISION_MANAGED_DEVICE
วิธีการของบัญชี Managed Google Play
DPC สามารถใช้วิธีการจัดสรรบัญชี Managed Google Play เพื่อตั้งค่าโหมดเจ้าของอุปกรณ์หรือโหมดเจ้าของโปรไฟล์ วิธีการจัดสรรนี้มีเป้าหมายในองค์กรที่ไม่ได้ใช้ G Suite อยู่ในปัจจุบัน
วิธีการจัดสรรบัญชี Managed Google Play ใช้ ไลบรารีการสนับสนุนของ DPC ไลบรารีของไคลเอ็นต์นี้ช่วยให้บัญชี Managed Google Play ทำงานได้อย่างราบรื่น เครื่องมือนี้ยังรองรับการอัปเดตกระบวนการจัดสรรบัญชี Managed Google Play ในอนาคตอีกด้วย
ข้อกำหนดเบื้องต้นในการจัดสรรอุปกรณ์
- รหัสองค์กรจะสร้างและลงทะเบียนด้วยข้อมูลประจำตัว EMM และมีการตั้งค่า ESA ตามที่อธิบายไว้ในสร้างและลงทะเบียนองค์กร
- คอนโซล EMM จะทราบข้อมูลประจำตัวของบริษัทของผู้ใช้
- ผู้ใช้จะลงชื่อเข้าใช้แอป DPC โดยใช้ข้อมูลเข้าสู่ระบบที่คอนโซล EMM ของคุณยอมรับ ซึ่งโดยทั่วไปจะเป็นข้อมูลเข้าสู่ระบบอีเมลขององค์กร
ตั้งค่าโหมดเจ้าของโปรไฟล์
คุณสามารถจัดสรรโหมดการทำงานของเจ้าของโปรไฟล์ในอุปกรณ์ที่นำมาใช้ในสถานการณ์แบบนำอุปกรณ์มาใช้เองเป็นอุปกรณ์ส่วนตัวได้
- ผู้ใช้ดาวน์โหลด DPC ของคุณจาก Google Play ด้วยตนเองและเปิดใช้งาน
- DPC จัดสรรโปรไฟล์งานโดยใช้
ACTION_PROVISION_MANAGED_PROFILE
- ทำตามขั้นตอนการตั้งค่าในขั้นตอนสุดท้าย
ตั้งค่าโหมดเจ้าของอุปกรณ์
คุณต้องจัดสรรโหมดการทำงานของเจ้าของอุปกรณ์ในระหว่างการตั้งค่าเริ่มต้นของอุปกรณ์ใหม่หรือหลังจากรีเซ็ตเป็นค่าเริ่มต้น ไม่สามารถจัดสรรโหมดเจ้าของอุปกรณ์ในอุปกรณ์ในเวลาอื่นๆ ได้
ในระหว่างการตั้งค่าอุปกรณ์ ผู้ใช้จะป้อนโทเค็นพิเศษเฉพาะสำหรับ DPC เมื่อระบบแจ้งให้เพิ่มบัญชี โทเค็นอยู่ในรูปแบบ "afw#DPC_IDENTIFIER" สำหรับ EMM ชื่อ ACME "afw#acme" จะติดตั้ง DPC เริ่มต้นของ ACME EMM EMM แต่ละรายต้องขอตัวระบุ DPC เฉพาะจาก Google ก่อนจึงจะใช้ในขั้นตอนการจัดสรรได้
- ผู้ใช้เปิดอุปกรณ์เครื่องใหม่หรืออุปกรณ์ที่รีเซ็ตเป็นค่าเริ่มต้น จากนั้นวิซาร์ดการตั้งค่าจะเปิดขึ้นมา
- เมื่อได้รับแจ้งให้เพิ่มบัญชี ผู้ใช้จะป้อนโทเค็นพิเศษในรูปแบบ "afw#DPC_IDENTIFIER" ที่ระบุ DPC สำหรับ EMM ของคุณ
- วิซาร์ดการตั้งค่าจะเพิ่มบัญชี Google ชั่วคราวลงในอุปกรณ์โดยใช้ตัวระบุ DPC ในโทเค็น บัญชีชั่วคราวนี้ใช้สำหรับดาวน์โหลด DPC สำหรับ EMM จาก Google Play เท่านั้น และจะถูกนำออกในขั้นตอนการตั้งค่าขั้นสุดท้าย
- DPC จัดสรรอุปกรณ์โดยใช้
ACTION_PROVISION_MANAGED_DEVICE
- ทำตามขั้นตอนการตั้งค่าในขั้นตอนสุดท้าย
ตั้งค่าโหมดเดิม
คุณสามารถจัดสรรโหมดการทำงานเดิมในอุปกรณ์ที่ใช้งานในสถานการณ์การนำอุปกรณ์มาใช้เองให้เป็นอุปกรณ์ส่วนตัวหากอุปกรณ์ไม่รองรับโปรไฟล์งาน
- ผู้ใช้ดาวน์โหลด DPC ของคุณจาก Google Play ด้วยตนเองและเปิดใช้งาน
- DPC จะกำหนดตัวเองเป็น ผู้ดูแลระบบอุปกรณ์
- ทำตามขั้นตอนการตั้งค่าในขั้นตอนสุดท้าย
ขั้นตอนการตั้งค่าขั้นสุดท้ายสำหรับการทำงานทุกโหมด
ทำตามขั้นตอนเหล่านี้หลังจากขั้นตอนเริ่มต้นในการตั้งค่าโหมดเจ้าของโปรไฟล์ โหมดเจ้าของอุปกรณ์ หรือโหมดเดิมเสร็จสมบูรณ์แล้วเท่านั้น
- DPC จะตรวจสอบว่าอุปกรณ์รองรับบัญชี Managed Google Play ได้
ด้วยการเริ่มต้นไลบรารีการสนับสนุน DPC ดังนี้
AndroidForWorkAccountSupport androidForWorkAccountSupport = new AndroidForWorkAccountSupport(context, admin); androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
หากคุณกำลังตั้งค่าโหมดเจ้าของอุปกรณ์บนอุปกรณ์ ขั้นตอนนี้จะนำบัญชี Google ชั่วคราวที่เพิ่มไว้เพื่อดาวน์โหลด DPC ออก
- ผู้ใช้ลงชื่อเข้าใช้ DPC โดยใช้ข้อมูลเข้าสู่ระบบ EMM ซึ่งโดยทั่วไปจะเป็นข้อมูลเข้าสู่ระบบอีเมลขององค์กร
- DPC ขอข้อมูลเข้าสู่ระบบของบัญชี Managed Google Play สำหรับผู้ใช้ขององค์กรที่ผ่านการตรวจสอบสิทธิ์จากคอนโซล EMM
- หากคอนโซล EMM ไม่มี
userId
ของ Google Play สำหรับผู้ใช้ ระบบจะสร้างผู้ใช้ใหม่ด้วยการโทรUsers.insert()
หากคุณจัดสรรโหมดเจ้าของอุปกรณ์ ให้ระบุบัญชีอุปกรณ์ (สำหรับการทำให้อุปกรณ์ใช้งานได้โดยเฉพาะ) หรือบัญชีผู้ใช้ (สำหรับการทำให้ใช้งานได้ของบริษัท)หมายเหตุ: เนื่องจากรหัสผู้ใช้เป็นรหัสเฉพาะสำหรับ EMM จึงไม่สามารถนำมาใช้ซ้ำได้หากองค์กรยกเลิกการลงทะเบียนและลงทะเบียนใหม่ด้วย EMM อื่น
ตั้งค่านโยบายของอุปกรณ์โดยโทรไปที่
Devices.update
คุณควรกำหนดนโยบายก่อนเพิ่มบัญชี Managed Google Play ลงในอุปกรณ์ มิฉะนั้นนโยบายจะไม่มีผลเป็นระยะเวลาสั้นๆ หลังจากที่เพิ่มบัญชีลงในอุปกรณ์แล้ว- คอนโซล EMM จะขอข้อมูลเข้าสู่ระบบบัญชีสำหรับ
userId
โดยโทรไปที่Users.generateAuthenticationToken()
โทเค็นการตรวจสอบสิทธิ์นี้มีอายุใช้งานสั้นและนำมาใช้ซ้ำไม่ได้ DPC ควรใช้โทเค็นเพื่อเพิ่มบัญชีแบบเป็นโปรแกรม (จะไม่ใช้สำหรับผู้ใช้ปลายทาง) - Google Play EMM API จะส่งโทเค็นการตรวจสอบสิทธิ์ไปยังคอนโซล EMM
- คอนโซล EMM จะส่งต่อโทเค็นการตรวจสอบสิทธิ์ไปยัง DPC
- DPC เพิ่มบัญชี Managed Google Play ลงในอุปกรณ์โดยใช้
androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
วิธีการของบัญชี Google
DPC สามารถใช้วิธีการจัดสรรบัญชี Google เพื่อตั้งค่าโหมดเจ้าของอุปกรณ์ โหมดเจ้าของโปรไฟล์ หรือโหมดเดิม ด้วยวิธีการจัดสรรบัญชี Google นั้น DPC จะแนะนำผู้ใช้เกี่ยวกับขั้นตอนการจัดสรรหลังจากที่ผู้ใช้เพิ่มบัญชี Google ของตนในระหว่างการตั้งค่าอุปกรณ์เริ่มแรก
เมื่อผู้ใช้ป้อนข้อมูลเข้าสู่ระบบของบัญชี Google ให้ทำดังนี้
- เซิร์ฟเวอร์การตรวจสอบสิทธิ์ของ Google จะตรวจสอบสิทธิ์บัญชีผู้ใช้
- จากนั้นเซิร์ฟเวอร์การตรวจสอบสิทธิ์จะสื่อสารกับเซิร์ฟเวอร์องค์กรเพื่อดูว่าโดเมนของบัญชีลงทะเบียนเป็นโดเมน G Suite หรือโดเมนที่จัดการโดย EMM หรือไม่
- ถ้าเป็นเช่นนั้น ระบบจะดาวน์โหลด DPC ที่เชื่อมโยงกับโดเมนจาก Google Play และติดตั้งโดยอัตโนมัติ
ตั้งค่าโหมดเจ้าของโปรไฟล์
คุณสามารถจัดสรรโหมดการทำงานของเจ้าของโปรไฟล์ในระหว่างการตั้งค่าเริ่มต้นของอุปกรณ์ หรือเมื่อผู้ใช้เพิ่มบัญชีโดยใช้การตั้งค่า > เพิ่มบัญชี
- การตรวจสอบสิทธิ์บัญชีจะเริ่มโดยผู้ใช้จากวิซาร์ดการตั้งค่าหรือจากการตั้งค่า > เพิ่มบัญชี
GMSCore จะเริ่มการจัดสรรโปรไฟล์งานโดยใช้
ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE
ระบบจะดาวน์โหลด DPC ไปยังอุปกรณ์โดยอัตโนมัติและเปิดขึ้นโดยใช้เครื่องจัดการ
ACTION_GET_PROVISIONING_MODE
เพื่อยืนยันว่า DPC รองรับการจัดสรรโปรไฟล์งานEXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
—ข้อมูลเพิ่มเติมสำหรับโปรไฟล์งาน เช่น อีเมล DPC จะได้รับ is_setup_wizard ที่นี่โดยเป็นส่วนหนึ่งของแพ็กเกจนี้ แพ็กเกจนี้จะรวมอยู่ในเครื่องจัดการACTION_GET_PROVISIONING_MODE
และACTION_ADMIN_POLICY_COMPLIANCE
EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
—ชื่อของบัญชีที่ผ่านการตรวจสอบสิทธิ์ที่จะย้ายข้อมูลไปยังโปรไฟล์งานใหม่แพลตฟอร์มจะมีการจัดสรรโปรไฟล์งาน
เมื่อมีการจัดสรรโปรไฟล์งาน DPC จะได้รับการกระจายข้อมูล
ACTION_PROFILE_PROVISIONING_COMPLETE
เครื่องจัดการACTION_ADMIN_POLICY_COMPLIANCE
ของ DPC เปิดใช้งานในโปรไฟล์งาน
เมื่อสร้างโปรไฟล์งานแล้ว DPC จะทำงานภายในโปรไฟล์งานด้วย DPC ผลักดันนโยบายสำหรับบัญชี Google ที่มีการจัดการดังกล่าว เพื่อให้มั่นใจว่าอุปกรณ์ไม่ได้อยู่ในสถานะถูกบุกรุก และยืนยันว่านโยบายมีการบังคับใช้ (เช่น การกำหนดให้ใช้รหัสผ่าน)DPC ในโปรไฟล์ส่วนตัวปิดใช้ตัวเองหรือผู้ใช้นำออก

ตั้งค่าโหมดเจ้าของอุปกรณ์หรือโหมด COPE
คุณต้องจัดสรรโหมดการทำงานของเจ้าของอุปกรณ์ในระหว่างการตั้งค่าเริ่มต้นของอุปกรณ์ใหม่หรือหลังจากรีเซ็ตเป็นค่าเริ่มต้น ไม่สามารถเพิ่มโหมดเจ้าของอุปกรณ์ ในอุปกรณ์ในเวลาอื่นๆ ได้
- ผู้ใช้เริ่มการตรวจสอบสิทธิ์บัญชีจากวิซาร์ดการตั้งค่า
- GMSCore เริ่มการจัดสรรเจ้าของอุปกรณ์โดยใช้
ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE
3. ระบบจะดาวน์โหลด DPC ไปยังอุปกรณ์โดยอัตโนมัติ และเปิดขึ้นโดยใช้เครื่องจัดการGET_PROVISIONING_MODE
เพื่อเลือกโหมดการจัดสรรที่ต้องการEXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
—ข้อมูลเพิ่มเติมสำหรับโปรไฟล์งาน เช่น ภาษา, Wi-Fi, อีเมล DPC จะได้รับ is_setup_wizard ที่นี่โดยเป็นส่วนหนึ่งของแพ็กเกจนี้ แพ็กเกจนี้จะรวมอยู่ในเครื่องจัดการACTION_GET_PROVISIONING_MODE
และACTION_ADMIN_POLICY_COMPLIANCE
- แพลตฟอร์มจะจัดสรรอุปกรณ์ไปยังโหมดการจัดสรรที่ต้องการ
เมื่อมีการจัดสรรอุปกรณ์แล้ว DPC จะได้รับการกระจายข้อมูลเหล่านี้และเปิดตัวเครื่องจัดการ
ACTION_ADMIN_POLICY_COMPLIANCE
ของ DPC
ACTION_READY_FOR_USER_INITIALIZATION
ACTION_PROFILE_PROVISIONING_COMPLETE
DPC ใช้ค่าของ
Global.DEVICE_PROVISIONED
เพื่อยืนยันว่าเป็นอุปกรณ์ใหม่หรือรีเซ็ตเป็นค่าเริ่มต้น (ไม่ได้จัดสรร)
0 - ยกเลิกการจัดสรรแล้ว
1 - จัดสรรแล้วDPC ดำเนินการตามขั้นตอนการจัดสรรให้เสร็จสิ้นโดยพุชนโยบายสำหรับอุปกรณ์ที่มีการจัดการนั้น ตรวจสอบว่าอุปกรณ์ไม่ได้อยู่ในสถานะถูกบุกรุก และตรวจสอบว่ามีการบังคับใช้นโยบาย (เช่น กำหนดให้ใช้รหัสผ่าน)

ตั้งค่าโหมดเดิม
คุณสามารถจัดสรรโหมดการทำงานเดิมได้ในระหว่างการตั้งค่าเริ่มต้นของอุปกรณ์ หรือเมื่อผู้ใช้เพิ่มบัญชีในการตั้งค่า > เพิ่มบัญชี ข้อกำหนดในการทำให้ Managed Google Play พร้อมใช้งานสำหรับผู้ใช้ที่มีบัญชี Google มีดังนี้
- บัญชี Google เป็นส่วนหนึ่งของโดเมน Google ที่มีการจัดการ
- โดเมน Managed Google ได้รับการตั้งค่าให้ใช้กับ Android ด้วย EMM ที่เชื่อมโยงกับ Google Play EMM API
คุณไม่จำเป็นต้องใช้ DPC หากต้องการจัดการแอปในอุปกรณ์เดิมเท่านั้น ในกรณีนี้ผู้ใช้เพิ่มบัญชี Google ของตนในการตั้งค่า > เพิ่มบัญชี การจัดการแอปรวมถึงการดูแลจัดการแอปที่แนะนำ การทำให้แอปส่วนตัวพร้อมใช้งาน การซื้อใบอนุญาตและเผยแพร่แอป
หากต้องการให้ DPC เพิ่มบัญชี Google ให้ทำดังนี้
- ผู้ใช้ดาวน์โหลด DPC ของคุณจาก Google Play และเปิดใช้งาน
- DPC เพิ่มบัญชี Google ที่มีการจัดการโดยใช้
AccountManager.addAccount()
โปรดดู TestDPC สำหรับตัวอย่างการใช้งานการเพิ่มบัญชี Google เฉพาะโดยใช้AccountManager.KEY_ACCOUNT_NAME
- (ไม่บังคับ) DPC จะตั้งค่าเป็นผู้ดูแลระบบอุปกรณ์ ในฐานะผู้ดูแลระบบอุปกรณ์ DPC มีความสามารถด้านการจัดการอุปกรณ์นอกเหนือจากการจัดการแอป
ข้อควรพิจารณาในการติดตั้งใช้งานวิธีการของบัญชี Google
DPC ควรตรวจหาขั้นตอนการตรวจสอบสิทธิ์บัญชี Google โดยมองหาส่วนเพิ่มเติมที่เฉพาะเจาะจงในเจตนารมณ์การเปิดตัวที่มีการใช้งาน (ดู
LaunchIntentUtil
) ดังนี้- บัญชีประเภท
android.accounts.Account
บ่งบอกว่าเพิ่มบัญชีจากวิซาร์ดการตั้งค่าหรือจากการตั้งค่า > เพิ่มบัญชี ซึ่งกำหนดให้ DPC ที่เปิดไว้อยู่แล้วจัดการอุปกรณ์หรือโปรไฟล์ได้ is_setup_wizard
ของประเภทบูลีน - หากเป็น "จริง" DPC จะเปิดใช้งานในวิซาร์ดการตั้งค่าก่อนที่วิซาร์ดการตั้งค่าจะเสร็จสมบูรณ์ มิเช่นนั้นจากการตั้งค่า > เพิ่มบัญชี หรือขั้นตอนอื่น
การตรวจสอบง่ายๆ ว่ามีการเปิดใช้ DPC เป็นส่วนหนึ่งของวิธีการบัญชี Google หรือไม่มีดังนี้
- บัญชีประเภท
boolean isSynchronousAuthLaunch(Intent launchIntent) { return launchIntent.hasExtra(“is_setup_wizard”); }
DPC ไม่ควรเรียกใช้
finish()
ก่อนที่จะตั้งค่าเสร็จ และควรแสดงรหัสผลลัพธ์ที่เป็นบวก (เช่นRESULT_OK
) ด้วยเมื่อมีการเปิดใช้ DPC ด้วยstartActivityForResult()
และรอผลลัพธ์DPC ควรรอรหัสผลลัพธ์จากกระบวนการจัดสรรก่อนที่จะเรียกใช้
finish()
หากขั้นตอนการตั้งค่า DPC ถึงจุดที่ส่ง IntentACTION_PROVISION_*
ใช้โค้ดเรียกกลับstartActivityForResult()
และonActivityResult()
เมื่อเปิด IntentACTION_PROVISION_*
(ดูตัวอย่างได้ที่LaunchActivity
และSetupSyncAuthManagement
)เนื่องจากขั้นตอนการตั้งค่ามีลักษณะไม่พร้อมกัน DPC จึงใช้รหัสผลลัพธ์
RESULT_OK
เพื่อระบุว่าการจัดสรรสำเร็จไม่ได้ วิธีเดียวที่รับประกันได้คือการใช้โค้ดเรียกกลับของDeviceAdminReceiver
เมื่อจัดสรรสำเร็จRESULT_CANCELED
บ่งชี้ว่าผู้ใช้ได้สำรองข้อมูลในขั้นตอนการตั้งค่าแบบพร้อมกัน และ DPC ควรจะตอบสนองต่อปัญหานี้ในตัวอย่างนี้ DPC จะเปิดการจัดสรรและรอรหัสผลลัพธ์จากกิจกรรม ดังนี้
Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE); startActivityForResult(intent, REQUEST_MANAGED_PROFILE);
...
@Override public void onActivityResult(int req, int res, Intent i) { if (req == REQUEST_MANAGED_PROFILE) { if (res == Activity.RESULT_OK) { setResult(Activity.RESULT_OK); finish(); } else { Toast.makeText(this, “Provisioning failed”, Toast.LENGTH_SHORT).show(); } } }
- DPC ไม่ควรพยายามตั้งค่าโหมดการทำงานของเจ้าของอุปกรณ์หากมีการจัดสรรอุปกรณ์แล้ว (ดู
ProvisioningStateUtil.isDeviceProvisioned()
) ในตัวอย่างนี้ DPC จะตรวจสอบว่ามีการจัดสรรอุปกรณ์หรือไม่
public static boolean isDeviceProvisioned(Context context) { ContentResolver cr = context.getContentResolver(); return Settings.Global.getInt(cr, DEVICE_PROVISIONED, 0) != 0; }
- ไม่บังคับ DPC สามารถใช้
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
เพิ่มเติมเมื่อเปิดใช้การจัดสรรเพื่อส่งข้อมูลสถานะกลับไปยังDeviceAdminReceiver
(ซึ่งในกรณีเจ้าของโปรไฟล์ทำงานอยู่ภายในโปรไฟล์งาน) TestDPC จะใช้ส่วนเพิ่มเติมนี้เพื่อป้อนกิจกรรมอีกชุดหนึ่งในบัญชี Google หลังจากจัดสรรเรียบร้อยแล้ว โปรดดูรายละเอียดที่DeviceAdminReceiver
public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver { @Override public void onProfileProvisioningComplete(Context context, Intent intent) { // Retrieve the admin extras bundle, which we can use to determine the original context for // Test DPC’s launch. PersistableBundle extras = intent.getParcelableExtra( EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE); ...
- หากต้องการตั้งค่าโปรไฟล์งาน DPC จะต้องย้ายข้อมูลบัญชีที่เพิ่มแล้วไปยังโปรไฟล์งานใหม่ ในการดำเนินการดังกล่าว DPC ควรส่งต่อบัญชีที่ให้ไว้ในเจตนารมณ์ในการเปิดสำหรับ
ACTION_PROVISION_MANAGED_PROFILE
- DPC ควรระบุคำกระตุ้นให้ดำเนินการ (Call-To-Action) ที่ชัดเจนให้แก่ผู้ใช้ (เช่น ปุ่มเสร็จสิ้น) เพื่อออกจากแอปในตอนท้ายของการตั้งค่า เพื่อไม่ให้ผู้ใช้คิดว่าพวกเขามาทางตันแล้ว
- DPC ควรใช้ธีมวิซาร์ดการตั้งค่าหรือไลบรารีการออกแบบ เพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ราบรื่นและผสานรวมได้ดี
เมธอด NFC
DPC สามารถใช้วิธีการจัดสรร NFC เพื่อตั้งค่าโหมดเจ้าของอุปกรณ์ ในวิธีการจัดสรร NFC หรือแท็ก NFC คุณจะสร้างแอปโปรแกรมเมอร์ NFC ที่มีนโยบายเริ่มต้น รวมถึงการกำหนดค่า Wi-Fi, การตั้งค่า และรายละเอียดการจัดสรรที่ลูกค้าจำเป็นต้องใช้เพื่อกำหนดค่าโหมดการทำงานของเจ้าของอุปกรณ์ เมื่อคุณหรือลูกค้าติดตั้งแอปโปรแกรมเมอร์ NFC ในอุปกรณ์ Android อุปกรณ์นั้นจะกลายเป็นอุปกรณ์โปรแกรมเมอร์
ในการจัดสรรอุปกรณ์ ผู้ดูแลระบบไอทีจะนำอุปกรณ์ใหม่ออกจากกล่องและนำไปชนกับอุปกรณ์ตัวโปรแกรมเมอร์ ซึ่งจะโอนการกำหนดค่าไปยังอุปกรณ์เพื่อเชื่อมต่ออินเทอร์เน็ตและดาวน์โหลดนโยบายและการตั้งค่าที่เหมาะสม จากนั้นอุปกรณ์จะได้รับการจัดการโดย DPC ของคุณ
หลังจากจัดสรรอุปกรณ์แล้ว Google Play จะแสดงเนื้อหาของผู้บริโภคที่ไม่มีการจัดการแทนแอปและคอลเล็กชันที่ได้รับอนุมัติซึ่งควรแสดงไว้เป็นระยะเวลาสั้นๆ โดยความล่าช้านี้อาจใช้เวลา 2-3 นาทีไปจนถึง 1 ชั่วโมง
สร้างแอปโปรแกรมเมอร์ NFC และอุปกรณ์โปรแกรมเมอร์
- ดาวน์โหลดแอปตัวอย่างโปรแกรมเมอร์ NFC จากหน้าตัวอย่างองค์กรของ GitHub คุณสามารถใช้ตัวอย่างตามที่เป็นโดยไม่ต้องเพิ่ม หรือแก้ไขตัวอย่างสำหรับค่าเริ่มต้นก็ได้ ดูโค้ดตัวอย่างพารามิเตอร์เริ่มต้นสำหรับข้อมูลเพิ่มเติม
- ติดตั้งแอปโปรแกรมเมอร์บนอุปกรณ์ที่เลือก
- เปิดแอปโปรแกรมเมอร์ NFC แล้วเลือก LoadDefaults สำหรับ com.example.android.apis (ข้อความนี้อาจแตกต่างกันไปตามพารามิเตอร์เริ่มต้นที่คุณตั้งไว้)
จัดสรรอุปกรณ์ของลูกค้า
- ชนอุปกรณ์ตัวตั้งโปรแกรมกับอุปกรณ์เครื่องใหม่หรืออุปกรณ์ที่ได้รับการรีเซ็ตเป็นค่าเริ่มต้น
- ตรวจสอบว่าอุปกรณ์ยังคงอยู่ในหน้าจอต้อนรับเริ่มแรกที่แสดงขึ้นเมื่อเริ่มใช้งาน ข้อความมีการระบุใน
Ready to send:{...}
ในแอปโปรแกรมเมอร์ - รอสักครู่ DPC
- เข้ารหัสอุปกรณ์
- หากเป็นอุปกรณ์ที่มีการเข้าถึงหลายระบบ Code-Division (CDMA) ให้เปิดใช้งานโทรศัพท์ขณะที่มีการแสดงอินเทอร์เฟซผู้ใช้ของโทรศัพท์ (ไม่จำเป็นต้องโต้ตอบ)
- ตั้งค่าการเชื่อมต่อ Wi-Fi
- ดาวน์โหลดไฟล์ .apk สำหรับ com.example.android.apis
- ติดตั้ง com.example.android.apis.
- ตั้งค่าผู้ดูแลระบบอุปกรณ์ตัวอย่างใน com.example.android.apis ในฐานะเจ้าของอุปกรณ์
- แสดง "ข้อความโทสต์" ที่สำเร็จเมื่อเปิดใช้งานเจ้าของอุปกรณ์
- หลังจากกลับไปยังหน้าแรก (ระบบข้ามวิซาร์ดการตั้งค่าโดยอัตโนมัติ) ให้ตรวจสอบว่าได้ตั้งค่า com.example.android.apis เป็นเจ้าของอุปกรณ์แล้ว ดังนี้
- ในการตั้งค่า > ความปลอดภัย > ผู้ดูแลระบบอุปกรณ์ ให้ตรวจสอบว่าไม่สามารถนำผู้ดูแลระบบอุปกรณ์ตัวอย่างออกได้
- ในการตั้งค่า > ผู้ใช้ > ผู้ใช้และโปรไฟล์ > คุณ (เจ้าของ) ให้ตรวจดูว่ามีเจ้าของเป็นบัญชีเดียวที่มีอยู่ (อุปกรณ์จะมีเจ้าของอุปกรณ์ที่ใช้งานอยู่ได้ทีละคนเท่านั้น)
ตัวอย่างโค้ดจากแอปโปรแกรมเมอร์ NFC
ส่วนต่างๆ จากแอปโปรแกรมเมอร์ NFC ที่อาจเป็นประโยชน์เป็นพิเศษจะมีความคิดเห็นในบรรทัด หากต้องการดูโค้ดตัวอย่างทั้งหมดในแอปโปรแกรมเมอร์ NFC ให้แตกไฟล์ .apk ตัวอย่างโดยใช้โปรแกรมดีคอมไพเลอร์ Java
เมธอด initializePropertyUI()
เมธอด initializePropertyUI()
จะเริ่มต้นองค์ประกอบของอินเทอร์เฟซผู้ใช้ (ช่องข้อความและช่องทำเครื่องหมายแบบแก้ไขได้) ในแอปโปรแกรมเมอร์ NFC โดยการเปลี่ยนแปลงในองค์ประกอบเหล่านั้นจะซิงค์กับคู่คีย์-ค่า (KVP) ที่ตัวแปร mProps
เก็บไว้ สุดท้ายแล้วตัวแปร mProps
จะถูกส่งไปยังอุปกรณ์บน NFC
private void initializePropertyUI(int paramInt1, int paramInt2, final String paramString) { Log.d("DeviceProvisioningProgrammerSample","initializeProperty for " + paramString); final EditText localEditText = (EditText)findViewById(paramInt1); final CheckBox localCheckBox =(CheckBox)findViewById(paramInt2); /* Here we initialize text boxes so that when their text is edited the changes are synced to mProps. */ if(localEditText != null) localEditText.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable paramAnonymousEditable) { } public void beforeTextChanged(CharSequence paramAnonymousCharSequence, int paramAnonymousInt1, int paramAnonymousInt2, int paramAnonymousInt3) { } public void onTextChanged(CharSequence paramAnonymousCharSequence, int paramAnonymousInt1, int paramAnonymousInt2, in paramAnonymousInt3) { if ((localCheckBox != null) && (localCheckBox.isChecked())) { DeviceProvisioningProgrammerSample.this.mProps.put(paramString, localEditText.getText().toString()); DeviceProvisioningProgrammerSample.this.refreshMessageView(); } } }); /* Here we initialize check boxes, so that when they are unchecked, the edit boxes are disabled, and the corresponding KVPs are removed from mProps. When they are checked the KVPs are re added, and the text boxes are enabled. */ if (localCheckBox != null) localCheckBox.setOnCheckedChangeListener (new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton paramAnonymousCompoundButton, boolean paramAnonymousBoolean) { Log.d("DeviceProvisioningProgrammerSample", "onCheckedChanged for " + localEditText.getText().toString() + " isChecked = " + paramAnonymousBoolean); if (paramAnonymousBoolean) { localEditText.setEnabled(true); DeviceProvisioningProgrammerSample.this.mProps.put(paramString, localEditText.getText().toString()); DeviceProvisioningProgrammerSample.this.refreshMessageView(); return; } localEditText.setEnabled(false); DeviceProvisioningProgrammerSample.this.mProps.remove(paramString); DeviceProvisioningProgrammerSample.this.refreshMessageView(); } }); }
พารามิเตอร์เริ่มต้น
ตัวอย่างโค้ดนี้ตั้งค่าเริ่มต้นที่จะพุชไปยังอุปกรณ์บน NFC พารามิเตอร์ที่กำหนดค่าได้บางรายการไม่ได้รวมอยู่ในตัวอย่าง แต่คุณอาจต้องรวมไว้ในการใช้งานด้วย (ดูพารามิเตอร์ที่ไม่อยู่ในตัวอย่างได้ที่นี่)
public void loadDefaults1(View paramView) { /* This EditText holds the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME */ ((EditText)findViewById(2131034114)).setText("com.example.android.apis"); ((CheckBox)findViewById(2131034113)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION */ ((EditText)findViewById(2131034116)).setText ("https://sites.google.com/site/apidemodownload/somepage/ApiDemos.apk"); ((CheckBox)findViewById(2131034115)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM (note: must be URL-safe)*/ ((EditText)findViewById(2131034118)).setText("ZYk5xsY0xqic51CTqB9kLiMLqwk"); ((CheckBox)findViewById(2131034117)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_WIFI_SSID */ ((EditText)findViewById(2131034120)).setText("\"GoogleGuest\""); ((CheckBox)findViewById(2131034119)).setChecked(true); /* This EditText holds the KVP for EXTRA_PROVISIONING_TIME_ZONE*/ ((EditText)findViewById(2131034122)).setText("Europe/London"); ((CheckBox)findViewById(2131034121)).setChecked(true); ((CheckBox)findViewById(2131034123)).setChecked(false); /* This EditText holds the KVP for EXTRA_PROVISIONING_LOCALE ((EditText)findViewById(2131034126)).setText("en_GB"); ((CheckBox)findViewById(2131034125)).setChecked(true); }
เมธอด onCreate()
เมธอด onCreate()
จะเริ่มต้นแอปโปรแกรมเมอร์ NFC รวมถึงฟังก์ชันและความสามารถของแอป
สตริง android.app.extra สอดคล้องกับสตริงที่อธิบายไว้ในเอกสารประกอบDevicePolicyManager
เช่น DevicePolicyManager.EXTRA_ PROVISIONING_WIFI_SSID ==
"android.app.extra.PROVISIONING_WIFI_SSID"
protected void onCreate(Bundle paramBundle) { Log.d("DeviceProvisioningProgrammerSample", "onCreate"); super.onCreate(paramBundle); setContentView(2130903040); this.mTextView = ((TextView)findViewById(2131034112)); this.mProps = new Properties(); initializePropertyUI(2131034114, 2131034113, "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME"); initializePropertyUI(2131034116, 2131034115, "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION"); initializePropertyUI(2131034118, 2131034117, "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM"); initializePropertyUI(2131034120, 2131034119, "android.app.extra.PROVISIONING_WIFI_SSID"); initializePropertyUI(2131034122, 2131034121, "android.app.extra.PROVISIONING_TIME_ZONE"); initializePropertyUI(2131034124, 2131034123, "android.app.extra.PROVISIONING_LOCAL_TIME"); initializePropertyUI(2131034126, 2131034125, "android.app.extra.PROVISIONING_LOCALE"); refreshMessageView(); /* Next we get the default NFC adapter for the Android device being used, and define CreateNdefMessageCallback() for that adapter, which is invoked when another NFC device capable of NDEF push (Android Beam) is within range. CreateNdefMessageCallback is an interface that has one abstract method that needs to be defined. That method, createNdefMessage, creates the message to be pushed. */ NfcAdapter.getDefaultAdapter(this).setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() { public NdefMessage createNdefMessage(NfcEvent paramAnonymousNfcEvent) { /* Here ndefMessage creates an output stream which contains the values from mProps. */ Log.d("DeviceProvisioningProgrammerSample", "Sending Nfc"); ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream(); try { DeviceProvisioningProgrammerSample.this.mProps.store(localByteArrayOutputStream, DeviceProvisioningProgrammerSample.this.getString(2130968578)); DeviceProvisioningProgrammerSample.this.mTextView.post(new Runnable() { public void run() { DeviceProvisioningProgrammerSample.this.refreshMessageView(); } }); /* Here NdefMessage is created containing an NdefRecord. The NdefRecord contains its record type, and a byte array derived from the mProps output stream. */ return new NdefMessage(new NdefRecord[] { NdefRecord.createMime("application/com.android.managedprovisioning", localByteArrayOutputStream.toByteArray()) }); } catch (IOException localIOException) { while (true) Log.e("DeviceProvisioningProgrammerSample", "io exception", localIOException); } } } , this, new Activity[0]); }
แหล่งข้อมูลเพิ่มเติม
NFC ขั้นสูง จะอธิบายหัวข้อ NFC ขั้นสูง เช่น การทำงานกับเทคโนโลยีแท็กต่างๆ การเขียนไปยังแท็ก NFC และการส่งงานในเบื้องหน้า
วิธีการติดตั้ง DPC ด้วยตนเอง
ในการตั้งค่าโหมดเจ้าของโปรไฟล์โดยใช้วิธีการจัดสรรการติดตั้ง DPC ด้วยตนเอง ผู้ใช้จะดาวน์โหลด DPC ของคุณจาก Google Play แล้วติดตั้ง จากนั้น DPC จะแนะนำผู้ใช้ตลอดขั้นตอนที่เหลือเพื่อตั้งค่าเจ้าของโปรไฟล์สำหรับบัญชี Google ที่มีการจัดการ
DPC เพิ่มบัญชี Google ที่มีการจัดการก่อนหรือหลังการสร้างโปรไฟล์งานได้ เช่น DPC สามารถสร้างโปรไฟล์งานโดยใช้ข้อมูลเข้าสู่ระบบ EMM ของผู้ใช้ แทนที่จะแสดงข้อความแจ้งสำหรับบัญชี Google ที่มีการจัดการก่อน
ตั้งค่าโหมดเจ้าของโปรไฟล์
เพิ่มบัญชี Google ที่มีการจัดการก่อน
- ผู้ใช้ดาวน์โหลด DPC ของคุณจาก Google Play แล้วติดตั้ง
- DPC จะเพิ่มบัญชี Google ที่มีการจัดการก่อนที่จะสร้างโปรไฟล์งานโดยใช้
AccountManager.addAccount()
- DPC จะเริ่มต้นทำงานในโปรไฟล์ส่วนตัวและเริ่มขั้นตอนการสร้างโปรไฟล์งานโดยใช้
ACTION_PROVISION_MANAGED_PROFILE
—จัดสรรโปรไฟล์งาน
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
—ข้อมูลเพิ่มเติมสำหรับโปรไฟล์งาน เช่น ภาษา, Wi-Fi, อีเมล
EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
—ชื่อของบัญชีที่ผ่านการตรวจสอบสิทธิ์ที่จะย้ายข้อมูลไปยังโปรไฟล์งานใหม่ - DPC ในโปรไฟล์งานดำเนินการจัดสรรให้เสร็จสมบูรณ์ เมื่อสร้างโปรไฟล์งานแล้ว DPC จะทำงานภายในโปรไฟล์งานด้วย DPC ในโปรไฟล์งานจะดำเนินการจัดสรรให้เสร็จสิ้นโดยพุชนโยบายสำหรับบัญชี Google ที่มีการจัดการนั้น ตรวจสอบว่าอุปกรณ์ไม่ได้อยู่ในสถานะถูกบุกรุก และยืนยันว่ามีการบังคับใช้นโยบาย (เช่น กำหนดให้ใช้รหัสผ่าน)
- เมื่อมีการจัดสรรโปรไฟล์งาน DPC จะได้รับการออกอากาศ
ACTION_PROFILE_PROVISIONING_COMPLETE
- DPC ในโปรไฟล์ส่วนตัวปิดใช้ตัวเองหรือผู้ใช้นำออก

สร้างโปรไฟล์งานก่อน
- ผู้ใช้ดาวน์โหลด DPC ของคุณจาก Google Play แล้วติดตั้ง
- DPC จะเริ่มต้นทำงานในโปรไฟล์ส่วนตัวและเริ่มขั้นตอนการสร้างโปรไฟล์งานโดยใช้
ACTION_PROVISION_MANAGED_PROFILE
—จัดสรรโปรไฟล์งาน
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
—ข้อมูลเพิ่มเติมสำหรับโปรไฟล์งาน เช่น ภาษา, Wi-Fi, อีเมล - DPC เพิ่มบัญชี Google ที่มีการจัดการโดยใช้
AccountManager.addAccount()
- DPC ได้รับการออกอากาศ
ACTION_PROFILE_PROVISIONING_COMPLETE
และอ่านว่าEXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
- DPC ในโปรไฟล์งานดำเนินการจัดสรรให้เสร็จสมบูรณ์ เมื่อสร้างโปรไฟล์งานแล้ว DPC จะทำงานภายในโปรไฟล์งานด้วย DPC ในโปรไฟล์งานจะดำเนินการจัดสรรให้เสร็จสิ้นโดยพุชนโยบายสำหรับบัญชี Google ที่มีการจัดการนั้น ตรวจสอบว่าอุปกรณ์ไม่ได้อยู่ในสถานะถูกบุกรุก และยืนยันว่ามีการบังคับใช้นโยบาย (เช่น กำหนดให้ใช้รหัสผ่าน)
- DPC จะเปิดใช้โปรไฟล์งานโดยใช้
DevicePolicyManager.setProfileEnabled()
- DPC ในโปรไฟล์ส่วนตัวปิดใช้ตัวเองหรือผู้ใช้นำออก

ตั้งค่าโหมดเดิม
คุณสามารถจัดสรรโหมดการทำงานเดิมได้ในระหว่างการตั้งค่าเริ่มต้นของอุปกรณ์ หรือเมื่อผู้ใช้เพิ่มบัญชีในการตั้งค่า > เพิ่มบัญชี ข้อกำหนดในการทำให้ Managed Google Play พร้อมใช้งานสำหรับผู้ใช้ที่มีบัญชี Google มีดังนี้
- บัญชี Google เป็นส่วนหนึ่งของโดเมน Google ที่มีการจัดการ
- โดเมน Managed Google ได้รับการตั้งค่าสำหรับ Android ในองค์กรโดยใช้ EMM ที่ผูกกับ Google Play EMM API
คุณไม่จำเป็นต้องใช้ DPC หากต้องการจัดการแอปในอุปกรณ์เดิมเท่านั้น ในกรณีนี้ผู้ใช้เพิ่มบัญชี Google ของตนในการตั้งค่า > เพิ่มบัญชี การจัดการแอปรวมถึงการดูแลจัดการแอปที่แนะนำ การทำให้แอปส่วนตัวพร้อมใช้งาน การซื้อใบอนุญาตและเผยแพร่แอป
หากต้องการให้ DPC เพิ่มบัญชี Google ให้ทำดังนี้
- ผู้ใช้ดาวน์โหลด DPC ของคุณจาก Google Play และเปิดใช้งาน
- DPC เพิ่มบัญชี Google ที่มีการจัดการโดยใช้
AccountManager.addAccount()
โปรดดู TestDPC สำหรับตัวอย่างการใช้งานการเพิ่มบัญชี Google เฉพาะโดยใช้AccountManager.KEY_ACCOUNT_NAME
- (ไม่บังคับ) DPC จะตั้งค่าเป็นผู้ดูแลระบบอุปกรณ์ ในฐานะผู้ดูแลระบบอุปกรณ์ DPC มีความสามารถด้านการจัดการอุปกรณ์นอกเหนือจากการจัดการแอป