ส่วนนี้อธิบายวิธีการเปิดใช้งานและตรวจสอบคุณสมบัติการจัดการอุปกรณ์ที่จำเป็นในการเตรียมอุปกรณ์สำหรับโปรไฟล์ที่มีการจัดการ นอกจากนี้ยังครอบคลุมกรณีผู้ใช้ของเจ้าของอุปกรณ์ที่จำเป็นในสภาพแวดล้อมขององค์กร
นอกจากโค้ด AOSP แล้ว อุปกรณ์ยังต้องการส่วนประกอบต่อไปนี้เพื่อทำงานร่วมกับโปรไฟล์ที่มีการจัดการ
ข้อกำหนดทั่วไป
อุปกรณ์ที่ต้องการสนับสนุนการจัดการอุปกรณ์ต้องเป็นไปตามข้อกำหนดทั่วไปดังต่อไปนี้
ค่า HAL ความร้อน
Android 7.0 ขึ้นไปมีการรองรับ HardwarePropertiesManager API ซึ่งเป็น API การตรวจสอบอุปกรณ์และการรายงานความสมบูรณ์ที่ช่วยให้แอปพลิเคชันสามารถสืบค้นสถานะของฮาร์ดแวร์ของอุปกรณ์ได้ API นี้เปิดเผยผ่าน android.os.HardwarePropertiesManager
และทำการเรียกผ่าน HardwarePropertiesManagerService
ไปยัง HAL ด้านความร้อนของฮาร์ดแวร์ ( hardware/libhardware/include/hardware/thermal.h
) เป็น API ที่ได้รับการป้องกัน ซึ่งหมายถึงเฉพาะแอปพลิเคชัน Device Policy Controller (DPC) เจ้าของอุปกรณ์/โปรไฟล์ และ VrListenerService
ปัจจุบันเท่านั้นที่สามารถเรียกใช้ได้
เพื่อรองรับ HardwarePropertiesManager API การนำ HAL ความร้อนของอุปกรณ์ไปใช้งานต้องสามารถรายงานค่าต่อไปนี้ได้:
ค่า | มาตราส่วนการรายงาน | เปิดใช้งาน |
---|---|---|
อุณหภูมิของ [CPU|GPU|แบตเตอรี่|สกินอุปกรณ์] | อุณหภูมิของส่วนประกอบในหน่วยองศาเซลเซียส | แอปสามารถตรวจสอบอุณหภูมิของอุปกรณ์และอุณหภูมิการควบคุมปริมาณ/การปิดส่วนประกอบได้ |
ซีพียูที่ใช้งาน/เปิดใช้งานรวมครั้ง | เวลาเป็นมิลลิวินาที | แอพสามารถตรวจสอบการใช้งาน CPU ต่อคอร์ได้ |
ความเร็วของพัดลม | RPM | แอพตรวจสอบความเร็วพัดลมได้ |
การใช้งานควรจัดการสถานการณ์ค่าการรายงานได้อย่างถูกต้องเมื่อคอร์ (หรือ GPU, แบตเตอรี่, พัดลม) ออฟไลน์หรือถูกเสียบ/ถอดปลั๊ก
เปิดใช้งานการจัดการอุปกรณ์
หากต้องการเปิดใช้งานการจัดการอุปกรณ์ ให้ตรวจสอบว่ามีการประกาศ uses-features
ต่อไปนี้:
-
android.software.device_admin
-
android.software.managed_users
(คุณลักษณะจะถูกประกาศก็ต่อเมื่ออุปกรณ์มีหน่วยความจำอย่างน้อย 2 GB)
เพื่อยืนยันว่าค่า uses-feature
เหล่านี้ได้รับการประกาศบนอุปกรณ์แล้ว ให้รัน: adb shell pm list features
แอพที่จำเป็นเท่านั้น
โดยค่าเริ่มต้น เฉพาะแอปพลิเคชันที่จำเป็นสำหรับการทำงานที่ถูกต้องของโปรไฟล์เท่านั้นที่จะเปิดใช้งานโดยเป็นส่วนหนึ่งของการเตรียมใช้งานอุปกรณ์ที่มีการจัดการ โปรดทราบว่าตัวอย่างทั้งหมดของไฟล์ _managed_profile.xml
ด้านล่างนี้จะเกี่ยวข้องก็ต่อเมื่อมีการประกาศ android.software.managed_users
OEM ต้องตรวจสอบให้แน่ใจว่าโปรไฟล์หรืออุปกรณ์ที่มีการจัดการมีแอปพลิเคชันที่จำเป็นทั้งหมดโดยแก้ไข:
vendor_required_apps_managed_profile.xml vendor_required_apps_managed_device.xml vendor_disallowed_apps_managed_profile.xml vendor_disallowed_apps_managed_device.xml /* * The following are for Android 9 and higher only */ vendor_required_apps_managed_user.xml vendor_disallowed_apps_managed_user.xml
แอปที่จำเป็นและไม่อนุญาตสำหรับผู้ใช้ที่มีการจัดการจะถูกนำไปใช้กับผู้ใช้รองที่สร้างผ่าน DevicePolicyManager#createAndManageUser
ตัวอย่างจากอุปกรณ์ Nexus
Android 8.x และเก่ากว่า
pacakages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_device.xml
Android 9 ขึ้นไป
frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml
<resources> <!-- A list of apps to be retained on the managed device --> <string-array name="vendor_required_apps_managed_device"> <item>com.android.vending</item> <!--Google Play --> <item>com.google.android.gms</item> <!--Required by Play --> <item>com.google.android.contacts</item> <!--Google or OEM Contacts--> <item>com.google.android.googlequicksearchbox</item> <!--Google Launcher --> <item>com.google.android.launcher</item> <!--Google Launcher or OEM Launcher --> <item>com.google.android.dialer</item> <!--Google or OEM dialer to enable making phone calls --> </string-array> </resources>
Android 8.x และเก่ากว่า
packages/apps/ManagedProvisioning/res/values/vendor_required_apps_managed_profile.xml
Android 9 ขึ้นไป
frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml
<resources> <!-- A list of apps to be retained in the managed profile. This includes any Google experience apps required. --> <string-array name="vendor_required_apps_managed_profile"> <item>com.android.vending</item> <!-- Google Play --> <item>com.google.android.gms</item> <!-- Required by Play --> <item>com.google.android.contacts</item> <!-- Google or OEM Contacts --> </string-array> </resources>
ข้อกำหนดของตัวเรียกใช้
คุณต้องอัปเดต Launcher เพื่อรองรับแอปพลิเคชันการติดป้ายด้วยป้ายไอคอน (มีให้ใน AOSP เพื่อแสดงถึงแอปพลิเคชันที่มีการจัดการ) และองค์ประกอบส่วนติดต่อผู้ใช้ของป้ายสถานะอื่นๆ เช่น ล่าสุดและการแจ้งเตือน หากคุณใช้ launcher3 ใน AOSP โดยไม่มีการปรับเปลี่ยน แสดงว่าคุณสนับสนุนคุณลักษณะการติดตราสัญลักษณ์นี้แล้ว
ข้อกำหนด NFC
อุปกรณ์ที่มี NFC ต้องเปิดใช้งาน NFC ระหว่างการใช้งานแบบสำเร็จรูป (เช่น วิซาร์ดการตั้งค่า) และได้รับการกำหนดค่าให้ยอมรับความตั้งใจในการจัดสรรที่มีการจัดการ:
packages/apps/Nfc/res/values/provisioning.xml
<bool name="enable_nfc_provisioning">true</bool> <item>application/com.android.managedprovisioning</item>
ข้อกำหนดในการตั้งค่า
อุปกรณ์ที่รวมประสบการณ์การใช้งานที่พร้อมใช้งานทันที (เช่น วิซาร์ดการตั้งค่า) ควรใช้การจัดเตรียมเจ้าของอุปกรณ์ เมื่อประสบการณ์ใช้งานนอกกรอบเปิดขึ้น ควรตรวจสอบว่ากระบวนการอื่น (เช่น การจัดเตรียมเจ้าของอุปกรณ์) ได้เสร็จสิ้นการตั้งค่าผู้ใช้แล้วหรือไม่ และหากเป็นเช่นนั้น การดำเนินการนี้ควรเริ่มต้นใช้งานที่บ้านและตั้งค่าให้เสร็จสิ้น ความตั้งใจนี้ถูกจับโดยแอปพลิเคชันการจัดเตรียม ซึ่งจะควบคุมโดยเจ้าของอุปกรณ์ที่เพิ่งตั้งค่าใหม่
เพื่อให้เป็นไปตามข้อกำหนดในการตั้งค่า ให้เพิ่มรหัสต่อไปนี้ในกิจกรรมหลักของการตั้งค่าอุปกรณ์:
@Override protected void onStart() { super.onStart(); // When returning to a setup wizard activity, check to see if another setup process // has intervened and, if so, complete an orderly exit boolean completed = Settings.Secure.getInt(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 0) != 0; if (completed) { startActivity(new Intent(Intent.ACTION_MAIN, null) .addCategory(Intent.CATEGORY_HOME) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED)); finish(); } ... }