มีอะไรใน Android 9 สำหรับแอประดับองค์กร

หน้านี้แสดงภาพรวมของ API, ฟีเจอร์ และลักษณะการทำงานของ API สำหรับองค์กร ที่มีใน Android 9

อินเทอร์เฟซผู้ใช้ของโปรไฟล์งาน

Android 9 (API ระดับ 28) มีการเปลี่ยนแปลงอินเทอร์เฟซผู้ใช้ในค่าเริ่มต้น Launcher เพื่อช่วยผู้ใช้แยกแอปส่วนตัวและแอปงาน ผู้ผลิตอุปกรณ์ ที่สนับสนุนสิ่งนี้สามารถนำเสนอ แอปในแท็บงานและแท็บส่วนตัวแยกกัน นอกจากนี้เรายังช่วยให้ผู้ใช้อุปกรณ์เปิดและปิดโปรไฟล์งานได้ง่ายขึ้นโดย รวมถึงสวิตช์ในแท็บงานของ Launcher

วันที่
รูปที่ 1 แท็บส่วนตัวและแท็บงานของ Launcher เริ่มต้น พร้อมการสลับโปรไฟล์งาน

Android 9 จะมีสิ่งต่อไปนี้เมื่อจัดสรรโปรไฟล์งานและอุปกรณ์ที่มีการจัดการ ภาพเคลื่อนไหวเพื่อช่วยให้ผู้ใช้อุปกรณ์เข้าใจฟีเจอร์เหล่านี้

สลับแอประหว่างโปรไฟล์

Android 9 มี API เพื่อเปิดใช้อินสแตนซ์อื่นของแอปใน เพื่อช่วยให้ผู้ใช้สลับใช้บัญชีต่างๆ ได้ ตัวอย่างเช่น แอปอีเมลสามารถ มี UI ที่ช่วยให้ผู้ใช้สลับระหว่างโปรไฟล์ส่วนตัวกับโปรไฟล์งานได้ เพื่อเข้าถึงบัญชีอีเมลสองบัญชี แอปทั้งหมดสามารถเรียก API เหล่านี้เพื่อเปิดใช้งานฟังก์ชัน กิจกรรมหลักของแอปเดียวกัน หากได้ติดตั้งไว้ในโปรไฟล์อื่นแล้ว ถึง เพิ่มการสลับบัญชีข้ามโปรไฟล์ไปยังแอปของคุณ ทำตามขั้นตอนด้านล่างในการโทร ของ ชั้นเรียน CrossProfileApps:

  1. โทรหา getTargetUserProfiles() เพื่อขอรายการของ ที่คุณสามารถเปิดใช้งานอินสแตนซ์อื่นของแอปได้ วิธีการนี้จะตรวจสอบว่า ติดตั้งแอปในโปรไฟล์แล้ว
  2. โทร getProfileSwitchingIconDrawable() เพื่อรับไอคอนที่ใช้แสดงโปรไฟล์อื่นได้
  3. โทรหา getProfileSwitchingLabel() เพื่อรับ ข้อความที่แปลแล้วที่แจ้งให้ผู้ใช้เปลี่ยนโปรไฟล์
  4. เรียกใช้ startMainActivity() เพื่อเปิดตัวอินสแตนซ์ แอปของคุณในโปรไฟล์อื่น

ตรวจสอบว่ากิจกรรมหลักที่คุณต้องการเปิดประกาศไว้ในแท็ก ไฟล์ Manifest ที่มีการดำเนินการ Intent ACTION_MAIN และรวมถึง หมวดหมู่ Intent ของ CATEGORY_LAUNCHER

เปิดหรือปิดโปรไฟล์งานแบบเป็นโปรแกรม

Launcher เริ่มต้น (หรือแอปที่มีสิทธิ์MANAGE_USERS หรือ MODIFY_QUIET_MODE) สามารถเปิดหรือปิดโปรไฟล์งานโดยการโทร UserManager.requestQuietModeEnabled() คุณสามารถ ตรวจสอบค่าผลลัพธ์เพื่อดูว่าผู้ใช้ต้องยืนยันหรือไม่ ข้อมูลเข้าสู่ระบบก่อนเปลี่ยนสถานะ เนื่องจากการเปลี่ยนแปลงอาจไม่เกิดขึ้น ให้ฟังได้ทันที ACTION_MANAGED_PROFILE_AVAILABLE หรือ ACTION_MANAGED_PROFILE_UNAVAILABLE ออกอากาศเพื่อให้ทราบว่าต้องอัปเดตอินเทอร์เฟซผู้ใช้เมื่อใด

แอปของคุณสามารถตรวจสอบสถานะของโปรไฟล์งานได้โดยการโทร UserManager.isQuietModeEnabled()

ล็อกแอปทุกแอปไว้ในอุปกรณ์

เริ่มตั้งแต่ Android 9 เจ้าของอุปกรณ์และเจ้าของโปรไฟล์ (ของผู้ใช้รอง) สามารถล็อกแอปใดก็ได้ไว้ที่หน้าจอของอุปกรณ์โดยการทำให้แอปเข้าสู่โหมดล็อกงาน ก่อนหน้านี้นักพัฒนาแอปต้องเพิ่มการรองรับงานการล็อก ในแอปของตนได้ Android 9 ขยายงานการล็อกด้วย API ไปยังเจ้าของโปรไฟล์ของผู้ใช้รองที่ไม่ใช่แอฟฟิลิเอต โดยทำตามขั้นตอนด้านล่างนี้ เพื่อล็อกแอปไว้ที่หน้าจอ ให้ทำดังนี้

  1. โทรหา DevicePolicyManager.setLockTaskPackages() ถึง อนุญาตแอปสำหรับโหมดล็อกงาน
  2. โทร ActivityOptions.setLockTaskEnabled() เพื่อเปิด แอปที่อยู่ในรายการที่อนุญาตให้เข้าสู่โหมดล็อกงาน

หากต้องการหยุดแอปในโหมดล็อกงาน ให้นำแอปออกจากโหมดล็อกงาน รายการที่อนุญาตโดยใช้ DevicePolicyManager.setLockTaskPackages()

เปิดใช้ฟีเจอร์ UI ของระบบ

เมื่อเปิดใช้โหมดล็อกงาน เจ้าของอุปกรณ์และเจ้าของโปรไฟล์จะเปิดใช้ได้ ฟีเจอร์ UI ของระบบบางอย่างในอุปกรณ์โดยการเรียกใช้ DevicePolicyManager.setLockTaskFeatures() และผ่านการตรวจสอบ ของฟิลด์บิตของแฟล็กฟีเจอร์ต่อไปนี้

คุณสามารถโทรหา DevicePolicyManager.getLockTaskFeatures() เพื่อรับรายการฟีเจอร์ที่พร้อมใช้งานในอุปกรณ์เมื่อโหมดล็อกงาน เปิดอยู่ เมื่ออุปกรณ์ออกจากโหมดงานล็อก อุปกรณ์จะกลับสู่สถานะที่คำสั่ง นโยบายด้านอุปกรณ์อื่นๆ

ระงับกล่องโต้ตอบข้อผิดพลาด

ในบางสภาพแวดล้อม เช่น การสาธิตในร้านค้าปลีกหรือข้อมูลสาธารณะ คุณอาจไม่ต้องการแสดงกล่องโต้ตอบข้อผิดพลาดต่อผู้ใช้ นโยบายด้านอุปกรณ์ ตัวควบคุม (DPC) สามารถระงับกล่องโต้ตอบข้อผิดพลาดของระบบสำหรับข้อขัดข้องหรือไม่ตอบสนอง ด้วยการเพิ่ม ผู้ใช้ DISALLOW_SYSTEM_ERROR_DIALOGS ข้อจำกัด ข้อจำกัดนี้จะมีผลต่อกล่องโต้ตอบทั้งหมดเมื่อเจ้าของอุปกรณ์นำไปใช้ แต่ระบบจะระงับเฉพาะกล่องโต้ตอบข้อผิดพลาดที่แสดงในผู้ใช้หลักหรือผู้ใช้รองเท่านั้น เมื่อเจ้าของโปรไฟล์ใช้การจำกัด ข้อจำกัดนี้ มีผลต่อโปรไฟล์งาน

ใน Android 9 แอปที่ทำงานในโหมดเต็มหน้าจอที่สมจริง โหมดไม่แสดงลูกโป่งการช่วยเตือนเมื่ออยู่ใน โหมดล็อกงาน ลูกโป่งการช่วยเตือนคือแผงที่แสดงให้ผู้ใช้เห็น (เมื่อเปิดใช้ครั้งแรก) ที่อธิบายวิธีออกจากโหมดใหญ่พิเศษ

รองรับผู้ใช้หลายคนในอุปกรณ์เฉพาะ

Android 9 มีแนวคิดสำหรับผู้ใช้ชั่วคราวเพื่อ (ก่อนหน้านี้เรียกว่าอุปกรณ์ COSU) ผู้ใช้ชั่วคราวคือ ผู้ใช้ระยะสั้นมีไว้สำหรับกรณีที่ผู้ใช้หลายคนใช้ อุปกรณ์เฉพาะ ซึ่งรวมถึงเซสชันของผู้ใช้แบบสาธารณะในอุปกรณ์ เช่น ไลบรารี ตู้เช็คอินหรือโรงแรม รวมถึงเซสชันถาวรระหว่าง กลุ่มผู้ใช้ในอุปกรณ์ เช่น กะผู้ปฏิบัติงาน

คุณควรสร้างผู้ใช้ชั่วคราวในเบื้องหลัง โดยจะสร้างเป็น ผู้ใช้รองในอุปกรณ์และจะถูกนำออก (รวมถึงแอปที่เกี่ยวข้องและ ) เมื่อหยุดทำงาน สลับอยู่ หรืออุปกรณ์รีบูต วิธีสร้าง ผู้ใช้ชั่วคราว เจ้าของอุปกรณ์สามารถทำสิ่งต่อไปนี้ได้

  1. ตั้งค่าสถานะ MAKE_USER_EPHEMERAL เมื่อโทร DevicePolicyManager.createAndManageUser()
  2. โทร DevicePolicyManager.startUserInBackground() เพื่อเริ่มใช้งานผู้ใช้ชั่วคราวในเบื้องหลัง

โปรดทราบว่าแอปที่กำหนดเป้าหมายเป็น Android 9 ควรดักจับ UserManager.UserOperationException เมื่อโทร createAndManageUser() เรียกใช้ getUserOperationResult() เพื่อหาสาเหตุ ไม่มีการสร้างผู้ใช้

รับการแจ้งเตือนกิจกรรม

DeviceAdminReceiver ได้รับการแจ้งเตือนสำหรับ กิจกรรมต่อไปนี้:

แสดงข้อความเหตุการณ์แก่ผู้ใช้

เจ้าของอุปกรณ์สามารถกำหนดค่าข้อความที่แสดงต่อผู้ใช้เมื่อผู้ใช้ เริ่มต้นและสิ้นสุดเซสชัน:

ออกจากระบบและหยุดผู้ใช้

เจ้าของอุปกรณ์ใช้ได้ DevicePolicyManager.setLogoutEnabled() เพื่อระบุว่า เปิดใช้การออกจากระบบสำหรับผู้ใช้รอง หากต้องการตรวจสอบว่าการออกจากระบบเปิดอยู่หรือไม่ ให้โทร DevicePolicyManager.isLogoutEnabled()

เจ้าของโปรไฟล์ของผู้ใช้รองสามารถโทรหา DevicePolicyManager.logoutUser() เพื่อหยุดผู้ใช้รองและ สลับกลับไปเป็นผู้ใช้หลัก

เจ้าของอุปกรณ์สามารถใช้ DevicePolicyManager.stopUser() เพื่อหยุด ผู้ใช้รองที่ระบุ

การแคชแพ็กเกจ

หากต้องการปรับปรุงการจัดสรรผู้ใช้ในอุปกรณ์ที่แชร์กับผู้ใช้ตามกลุ่มแบบคงที่ เช่น อุปกรณ์สำหรับผู้ปฏิบัติงานเป็นกะ คุณสามารถแคชพัสดุที่ ที่จำเป็นสำหรับเซสชันที่มีผู้ใช้หลายคน:

  1. โทร DevicePolicyManager.setKeepUninstalledPackages() เพื่อระบุรายการแพ็กเกจที่จะเก็บไว้เป็น APK หากต้องการเรียกข้อมูลรายการ แพ็กเกจ, โทร DevicePolicyManager.getKeepUninstalledPackages()

  2. โทร DevicePolicyManager.installExistingPackage() เพื่อติดตั้งแพ็กเกจที่เก็บไว้หลังจากที่นำออกผ่าน setKeepUninstalledPackages()

วิธีการและค่าคงที่เพิ่มเติม

Android 9 ยังมีวิธีการและค่าคงที่ต่อไปนี้เพื่อการสนับสนุนเพิ่มเติม เซสชันของผู้ใช้ในอุปกรณ์ที่แชร์:

  • DevicePolicyManager.getSecondaryUsers() รับรายการ ผู้ใช้รองทั้งหมดในอุปกรณ์
  • DISALLOW_USER_SWITCH เป็นข้อจำกัดสำหรับผู้ใช้ที่คุณสามารถ เปิดใช้โดยการโทร DevicePolicyManager.addUserRestriction() เพื่อบล็อกไม่ให้ผู้ใช้เปลี่ยน
  • LEAVE_ALL_SYSTEM_APPS_ENABLED เป็นแฟล็ก พร้อมใช้งานสำหรับ DevicePolicyManager.createAndManageUser() เมื่อตั้งค่าแล้ว ไม่มีการปิดใช้แอประบบในระหว่างการจัดสรรผู้ใช้
  • UserManager.UserOperationException โยนโดย DevicePolicyManager.createAndManageUser()เมื่อระบบสร้างผู้ใช้ไม่ได้ ค่า ข้อยกเว้นจะมีเหตุผลของความล้มเหลว

ล้างข้อมูลแพ็กเกจและนำบัญชีออก

เจ้าของอุปกรณ์และเจ้าของโปรไฟล์สามารถโทรหาได้ clearApplicationUserData() เพื่อล้างข้อมูลผู้ใช้ สำหรับแพ็กเกจหนึ่งๆ วิธีนำบัญชีออกจาก AccountManager เจ้าของอุปกรณ์และโปรไฟล์สามารถโทรหาได้ removeAccount()

การจำกัดผู้ใช้และการควบคุมการตั้งค่าที่มากขึ้น

Android 9 เปิดตัวชุดข้อจำกัดสำหรับผู้ใช้สำหรับ DPC รวมถึง ความสามารถในการกำหนดค่า APN, เวลาและเขตเวลา และการตั้งค่าระบบในอุปกรณ์

กำหนดค่า APN

เจ้าของอุปกรณ์สามารถใช้วิธีการต่อไปนี้ใน DevicePolicyManager ที่จะกำหนดค่า APN ใน อุปกรณ์:

กำหนดค่าเวลาและเขตเวลา

เจ้าของอุปกรณ์สามารถใช้วิธีการต่อไปนี้ใน คลาส DevicePolicyManager เพื่อตั้งเวลาและเขตเวลา บนอุปกรณ์

บังคับใช้การจำกัดผู้ใช้กับการตั้งค่าที่สำคัญ

Android 9 เพิ่มข้อจำกัดของผู้ใช้เพื่อปิดใช้ฟีเจอร์และการตั้งค่าของระบบ ถึง เพิ่มข้อจำกัด โทร DevicePolicyManager.addUserRestriction() ที่มีหนึ่งใน ค่าคงที่ UserManager ต่อไปนี้

หากเป็น DISALLOW_CONFIG_BRIGHTNESS และ บังคับใช้ DISALLOW_CONFIG_SCREEN_TIMEOUT แล้ว ในอุปกรณ์ เจ้าของอุปกรณ์ยังคงสามารถตั้งค่าหน้าจอได้ ความสว่าง, ความสว่างของหน้าจอ โหมด และการตั้งค่าระยะหมดเวลาหน้าจอ บนอุปกรณ์โดยใช้ API DevicePolicyManager.setSystemSetting()

ข้อมูลที่มีการวัดปริมาณอินเทอร์เน็ต

เจ้าของอุปกรณ์และเจ้าของโปรไฟล์สามารถป้องกันไม่ให้แอปใช้อุปกรณ์ เครือข่ายข้อมูลแบบจำกัดปริมาณ ระบบจะถือว่าเครือข่ายมีการวัดปริมาณอินเทอร์เน็ตเมื่อผู้ใช้อยู่ ไวต่อปริมาณการใช้อินเทอร์เน็ตปริมาณมากเนื่องจากค่าใช้จ่าย ขีดจำกัดของข้อมูล หรือแบตเตอรี่และ ปัญหาด้านประสิทธิภาพ หากต้องการป้องกันไม่ให้แอปใช้เครือข่ายแบบจำกัดปริมาณ โปรดโทร DevicePolicyManager.setMeteredDataDisabledPackages() การส่งรายการชื่อแพ็กเกจ หากต้องการเรียกดูแอปที่ถูกจำกัดในปัจจุบัน ให้โทร DevicePolicyManager.getMeteredDataDisabledPackages()

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลแบบจำกัดปริมาณใน Android โปรดอ่านการเพิ่มประสิทธิภาพข้อมูลเครือข่าย การใช้งาน

ย้ายข้อมูล DPC

เครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC) สามารถโอนการเป็นเจ้าของอุปกรณ์หรือ โปรไฟล์งานไปยัง DPC อื่น คุณอาจโอนการเป็นเจ้าของเพื่อย้ายฟีเจอร์บางอย่าง ในส่วนการจัดการอุปกรณ์ Android API เพื่อย้ายอุปกรณ์จาก DPC เดิมหรือเพื่อช่วยผู้ดูแลระบบไอทีย้ายข้อมูลไปยัง EMM เพราะคุณเพิ่ง กำลังเปลี่ยนความเป็นเจ้าของ DPC คุณไม่สามารถใช้ฟีเจอร์นี้เพื่อเปลี่ยนประเภทของ การจัดการ เช่น การย้ายข้อมูลจากอุปกรณ์ที่มีการจัดการไปยังโปรไฟล์งาน หรือ หรือในทางกลับกันก็ได้

คุณสามารถใช้ทรัพยากร XML ของนโยบายผู้ดูแลระบบอุปกรณ์เพื่อ ระบุว่า DPC เวอร์ชันนี้รองรับการย้ายข้อมูล DPC เป้าหมาย ระบุว่าสามารถรับการเป็นเจ้าของได้โดยการเพิ่มองค์ประกอบที่ชื่อว่า <support-transfer-ownership> ตัวอย่างด้านล่างแสดงวิธีดำเนินการใน ไฟล์ XML ผู้ดูแลอุปกรณ์ของ DPC

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <support-transfer-ownership />
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
    </uses-policies>
</device-admin>

DPC ที่ต้องการย้ายข้อมูลการเป็นเจ้าของไปยังแอป DPC ใหม่สามารถตรวจสอบว่า DPC เป้าหมาย เวอร์ชันรองรับการย้ายข้อมูลโดยเรียกใช้เมธอด DeviceAdminInfo supportsTransferOwnership() ก่อนโอน เป็นความรับผิดชอบของ DPC ต้นทางในการตรวจสอบ DPC เป้าหมายโดย ที่เปรียบเทียบลายเซ็นของแอป ชั้นเรียน PackageManager ประกอบด้วย วิธีทำงานกับลายเซ็นแบบโค้ด

Android ดูแลรักษาระบบและนโยบายผู้ใช้ของ DPC ต้นทางผ่านการเป็นเจ้าของ การโอน - DPC ไม่จำเป็นต้องย้ายข้อมูล DPC ต้นทางสามารถส่งต่อข้อมูลที่กำหนดเองไปยัง DPC เป้าหมายโดยใช้คู่คีย์-ค่าใน PersistableBundle หลังจาก DPC เป้าหมายสามารถเรียกดูข้อมูลนี้โดยการเรียกใช้ DevicePolicyManager.getTransferOwnershipBundle()

ขั้นตอนในการโอนการเป็นเจ้าของอุปกรณ์ที่มีการจัดการหรือโปรไฟล์งานมีดังนี้ เหมือนกัน:

  1. DPC ต้นทางจะตรวจสอบว่าเวอร์ชันของ DPC เป้าหมายรองรับการย้ายข้อมูลและ ยืนยันว่าลายเซ็นแอปของ DPC เป้าหมายตรงกับค่าที่คาดไว้
  2. DPC ต้นทางเรียกใช้ transferOwnership() เพื่อเริ่มต้น การโอน
  3. ระบบจะกำหนดให้ DPC เป้าหมายเป็นผู้ดูแลระบบที่ใช้งานอยู่และชุด อุปกรณ์ที่มีการจัดการหรือโปรไฟล์งาน
  4. DPC เป้าหมายได้รับการติดต่อกลับ onTransferOwnershipComplete() และสามารถกำหนดค่า โดยใช้ค่าจากอาร์กิวเมนต์ bundle
  5. หากเกิดข้อผิดพลาดในการโอน ระบบจะเปลี่ยนการเป็นเจ้าของเป็น DPC ต้นทาง หาก DPC ต้นทางต้องยืนยันว่าการโอนการเป็นเจ้าของ สำเร็จ โทรติดต่อ isAdminActive() เพื่อตรวจสอบว่า DPC ต้นทาง ไม่ได้เป็นผู้ดูแลระบบที่ใช้งานอยู่อีกต่อไป

แอปทั้งหมดที่เรียกใช้ในโปรไฟล์งานจะได้รับ ACTION_PROFILE_OWNER_CHANGED ประกาศเมื่อ เจ้าของโปรไฟล์ก็เปลี่ยน แอปที่ทำงานในอุปกรณ์ที่มีการจัดการจะได้รับ ACTION_DEVICE_OWNER_CHANGED ประกาศเมื่อ การเปลี่ยนแปลงเจ้าของอุปกรณ์

โปรไฟล์งานในอุปกรณ์ที่มีการจัดการเต็มรูปแบบ

การโอน DPC 2 อินสแตนซ์ที่ทำหน้าที่เป็นเจ้าของอุปกรณ์และเจ้าของโปรไฟล์ จะเกิดขึ้นใน 2 ขั้นตอน เมื่อโปรไฟล์ส่วนตัวและโปรไฟล์งาน เป็นพาร์ทเนอร์ ให้ดำเนินการโอนตามลำดับต่อไปนี้

  1. ก่อนอื่นให้โอนการเป็นเจ้าของโปรไฟล์งาน
  2. รอการโทรกลับของ DeviceAdminReceiver onTransferAffiliatedProfileOwnershipComplete() เพื่อยืนยันว่าโปรไฟล์งานโอนไปยัง DPC เป้าหมายแล้ว
  3. ขั้นตอนสุดท้าย ให้โอนการเป็นเจ้าของอุปกรณ์ที่มีการจัดการไปยัง DPC เป้าหมาย

เลื่อนการอัปเดตผ่านอากาศ (OTA)

เจ้าของอุปกรณ์สามารถเลื่อนการอัปเดตระบบ OTA ไปยังอุปกรณ์ได้สูงสุด 90 วันเพื่อ ทำให้เวอร์ชันของระบบปฏิบัติการที่ทำงานในอุปกรณ์เหล่านี้ค้างในช่วงเวลาสำคัญ (เช่น วันหยุด) ระบบจะบังคับใช้บัฟเฟอร์ 60 วันหลังจากที่กำหนด ระยะเวลาหยุดทำงานเพื่อป้องกันการตรึงอุปกรณ์โดยไม่มีกำหนด

ระหว่างช่วงหยุดทำงาน:

  • อุปกรณ์จะไม่ได้รับการแจ้งเตือนใดๆ เกี่ยวกับการอัปเดต OTA ที่รอดำเนินการ
  • อุปกรณ์จะไม่ติดตั้งการอัปเดต OTA ในระบบปฏิบัติการ
  • ผู้ใช้อุปกรณ์ไม่สามารถตรวจหาการอัปเดต OTA ในการตั้งค่าด้วยตนเองได้

หากต้องการกำหนดช่วงหยุดทำงาน โปรดโทร SystemUpdatePolicy.setFreezePeriods() เพราะการที่จุดค้าง เกิดซ้ำทุกปี โดยจะแสดงวันที่เริ่มต้นและวันที่สิ้นสุดของช่วงเวลา ด้วยจำนวนเต็มนับจำนวนวันนับตั้งแต่เริ่มต้นปี วันที่เริ่มต้นต้อง เริ่มต้นอย่างน้อย 60 วันหลังจากสิ้นสุดช่วงหยุดทำงานก่อนหน้านี้ อุปกรณ์ เจ้าของสามารถโทรหา SystemUpdatePolicy.getFreezePeriods() เพื่อ รับรายการช่วงหยุดทำงานที่ตั้งค่าไว้ก่อนหน้านี้ในออบเจ็กต์นโยบายการอัปเดตระบบ DevicePolicyManager.getSystemUpdatePolicy() ได้รับการ อัปเดตเพื่อแสดงช่วงหยุดทำงานที่เจ้าของอุปกรณ์กำหนดไว้

จำกัดการแชร์ไปยังโปรไฟล์งาน

เจ้าของโปรไฟล์ป้องกันไม่ให้ผู้ใช้แชร์ข้อมูลส่วนตัวไปยังโปรไฟล์งานได้ ในอุปกรณ์โดยเพิ่มการจำกัดผู้ใช้ DISALLOW_SHARE_INTO_MANAGED_PROFILE ข้อจำกัดนี้จะป้องกันการจัดการและการแชร์ Intent ต่อไปนี้

  • แอปโปรไฟล์ส่วนตัวที่แชร์ข้อมูลและไฟล์กับแอปในโปรไฟล์งาน
  • แอปโปรไฟล์งานที่เลือกรายการจากโปรไฟล์ส่วนตัว เช่น ภาพหรือไฟล์

หลังจากตั้งค่าข้อจำกัดนี้ DPC ของคุณจะยังคงอนุญาตกิจกรรมข้ามโปรไฟล์ได้ Intent ด้วยการโทร addCrossProfileIntentFilter()

คีย์ที่ปลอดภัยด้วยฮาร์ดแวร์และใบรับรองของเครื่อง

Android 9 เพิ่ม API เพื่อช่วยให้คุณทำงานกับคีย์และใบรับรองที่ทำสิ่งต่อไปนี้ได้ รวมเข้าด้วยกันเพื่อระบุอุปกรณ์อย่างปลอดภัย DPC ที่ทำงานอยู่ในเจ้าของโปรไฟล์หรืออุปกรณ์ โหมดเจ้าของ หรือโปรแกรมติดตั้งใบรับรองที่ได้รับมอบสิทธิ์ ทำงานต่อไปนี้ให้เสร็จ

  • สร้างคีย์และใบรับรองในฮาร์ดแวร์ที่ปลอดภัย (เช่น สภาพแวดล้อมการดำเนินการ (TEE) หรือองค์ประกอบความปลอดภัย (SE)) ของอุปกรณ์ Android คีย์ที่สร้างขึ้นจะไม่หายไปจากฮาร์ดแวร์ที่ปลอดภัย และสามารถใช้ได้จาก KeyChain โทร DevicePolicyManager.generateKeyPair() ซึ่งจัดหา อัลกอริทึม (ดู KeyPairGenerator) และรหัสฮาร์ดแวร์ที่คุณ ต้องการเอกสารรับรอง เช่น หมายเลขซีเรียลหรือ IMEI หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับความปลอดภัย การเปลี่ยนแปลงฮาร์ดแวร์ โปรดดูความปลอดภัยของ Android 9 การเพิ่มประสิทธิภาพ
  • เชื่อมโยงใบรับรองกับคีย์ที่มีอยู่ซึ่งอุปกรณ์สร้างขึ้น โทร กำลังจัดหา DevicePolicyManager.setKeyPairCertificate() ชื่อแทนของคีย์ที่มีอยู่และเชนใบรับรอง เริ่มต้นจาก Leaf และรวมถึงชุดของความน่าเชื่อถือตามลำดับ
  • ตรวจสอบว่าฮาร์ดแวร์ที่ปลอดภัยปกป้องคีย์ก่อนใช้งาน หากต้องการตรวจสอบ กลไกใดที่ปกป้องคีย์ ให้ทำตามขั้นตอนในคีย์ เอกสารรับรอง
  • เจ้าของอุปกรณ์และผู้ติดตั้งใบรับรองที่ได้รับมอบสิทธิ์จะได้รับใบรับรองที่ลงชื่อ ข้อความของอุปกรณ์ รหัสฮาร์ดแวร์ที่มีเวอร์ชันของระบบ Android โทร DevicePolicyManager.generateKeyPair() ส่งอย่างน้อย 1 รายการ จาก ID_TYPE_BASE_INFO, ID_TYPE_SERIAL ID_TYPE_IMEI หรือ ID_TYPE_MEID ใน idAttestationFlags อาร์กิวเมนต์ ใบรับรองที่ส่งคืนประกอบด้วยฮาร์ดแวร์ รหัสในระเบียนเอกสารรับรอง หากไม่ต้องการรวมรหัสฮาร์ดแวร์ด้วย ให้ส่ง 0 เจ้าของโปรไฟล์จะรับข้อมูลผู้ผลิตได้เท่านั้น (โดยการส่ง ID_TYPE_BASE_INFO) หากต้องการตรวจสอบว่าอุปกรณ์ยืนยันรหัสได้ ให้โทร isDeviceIdAttestationSupported()
  • ป้องกันไม่ให้ผู้ใช้อุปกรณ์ใช้รหัสขององค์กรในทางที่ผิด (ในงานที่ไม่ใช่ขององค์กร) โดยทำให้เลือกใบรับรองคีย์ไม่ได้ ระบบจะไม่รวม ใบรับรองที่ไม่ได้เลือกในแผงเครื่องมือเลือก ใน DeviceAdminReceiver.onChoosePrivateKeyAlias() Callback ให้แสดงผลชื่อแทนเป็นคีย์ขององค์กรเพื่อให้ระบบ จะเลือกใบรับรองโดยอัตโนมัติในนามของผู้ใช้ วิธีสร้างคีย์ ไม่สามารถเลือกได้ ให้เรียกเมธอด DevicePolicyManager ต่อไปนี้:

การรวม API เหล่านี้เข้าด้วยกันจะทำให้องค์กรระบุอุปกรณ์และยืนยันได้อย่างปลอดภัย ความซื่อสัตย์ของผู้ใช้ก่อนที่จะให้สิทธิ์เข้าถึง

  1. อุปกรณ์ Android จะสร้างคีย์ส่วนตัวใหม่ในฮาร์ดแวร์ที่ปลอดภัย เนื่องจากคีย์ส่วนตัวจะไม่ออกไปจากฮาร์ดแวร์ที่ปลอดภัย จึงยังคงเป็นความลับ
  2. อุปกรณ์ใช้คีย์เพื่อสร้างและส่งคำขอลงชื่อใบรับรอง (CSR) ไปยังเซิร์ฟเวอร์ CSR ประกอบด้วยบันทึกเอกสารรับรองที่มี รหัสอุปกรณ์
  3. เซิร์ฟเวอร์จะตรวจสอบกลุ่มใบรับรอง (รูทไปจนถึงใบรับรองของ Google) และดึงข้อมูลเมตาของอุปกรณ์จากระเบียนเอกสารรับรอง
  4. เซิร์ฟเวอร์จะยืนยันว่าฮาร์ดแวร์ที่ปลอดภัยจะปกป้องคีย์ส่วนตัวและ ว่ารหัสอุปกรณ์ตรงกับระเบียนขององค์กร เซิร์ฟเวอร์ยังตรวจสอบ ว่าระบบ Android และเวอร์ชันแพตช์ตรงตามข้อกำหนดทั้งหมดหรือไม่
  5. เซิร์ฟเวอร์จะสร้างใบรับรองจาก CSR และส่งใบรับรองไปที่ อุปกรณ์
  6. อุปกรณ์จะจับคู่ใบรับรองกับคีย์ส่วนตัว (ซึ่งจะยังอยู่ใน ฮาร์ดแวร์ที่ปลอดภัย) ทำให้แอปเชื่อมต่อกับบริการของระดับองค์กรได้

API, ฟีเจอร์ และการเปลี่ยนแปลงเกี่ยวกับการรักษาความปลอดภัยเพิ่มเติม

รหัสสำหรับบันทึกความปลอดภัยและบันทึกเครือข่าย

Android 9 มีรหัสในบันทึกกิจกรรมความปลอดภัยและเครือข่าย รหัสตัวเลข เหตุการณ์ต่างๆ เพิ่มขึ้นแบบเดี่ยวๆ ทำให้ผู้ดูแลระบบไอทีสังเกตเห็นได้ง่ายขึ้น มีช่องว่างในบันทึก เนื่องจากบันทึกการรักษาความปลอดภัยและบันทึกเครือข่ายอยู่แยกกัน ระบบจะเก็บรักษาค่ารหัสแยกกัน

โทร SecurityEvent.getId() DnsEvent.getId() หรือ ConnectEvent.getId() เพื่อรับค่ารหัส ระบบ รีเซ็ตรหัสเมื่อใดก็ตามที่ DPC เปิดใช้การบันทึกหรือเมื่ออุปกรณ์รีสตาร์ท บันทึกความปลอดภัยที่ดึงข้อมูลโดยการโทร DevicePolicyManager.retrievePreRebootSecurityLogs() ไม่รวมรหัสเหล่านี้

การบันทึกความปลอดภัย

การบันทึกการรักษาความปลอดภัยจะกำหนดระดับการบันทึกให้กับ SecurityEvent หากต้องการดูระดับการบันทึก โทรหา getLogLevel() เมธอดนี้จะแสดงค่าระดับการบันทึกที่ อาจเป็น LEVEL_INFO, LEVEL_WARNING หรือ LEVEL_ERROR

Android 9 จะบันทึกเหตุการณ์ที่แสดงอยู่ในตารางด้านล่างความปลอดภัย บันทึก หากต้องการตรวจสอบแท็กของเหตุการณ์ ให้เรียกใช้ getTag() ถึง เรียกดูข้อมูลเหตุการณ์ โทร getData()

ติดแท็ก คำอธิบายกิจกรรม
TAG_CERT_AUTHORITY_INSTALLED มีการพยายามติดตั้งใบรับรองรูทใหม่ลงในที่เก็บข้อมูลเข้าสู่ระบบของระบบ
TAG_CERT_AUTHORITY_REMOVED การพยายามนำใบรับรองรูทออกจากที่เก็บข้อมูลเข้าสู่ระบบของระบบ
TAG_CERT_VALIDATION_FAILURE ใบรับรอง Wi-Fi ไม่ผ่านการตรวจสอบความถูกต้องระหว่างการเชื่อมต่อ
TAG_CRYPTO_SELF_TEST_COMPLETED ระบบทำการทดสอบตนเองด้วยการเข้ารหัสเสร็จแล้ว
TAG_KEYGUARD_DISABLED_FEATURES_SET แอปผู้ดูแลระบบปิดใช้ฟีเจอร์ของอุปกรณ์หรือหน้าจอล็อกของโปรไฟล์งาน
TAG_KEY_DESTRUCTION การพยายามลบคีย์การเข้ารหัส
TAG_KEY_GENERATED การพยายามสร้างคีย์การเข้ารหัสใหม่
TAG_KEY_IMPORT ความพยายามในการนำเข้าคีย์การเข้ารหัสใหม่
TAG_KEY_INTEGRITY_VIOLATION Android ตรวจพบคีย์การเข้ารหัสหรือคีย์การตรวจสอบสิทธิ์ที่เสียหาย
TAG_LOGGING_STARTED เริ่มการบันทึกการรักษาความปลอดภัยแล้ว
TAG_LOGGING_STOPPED หยุดการบันทึกการรักษาความปลอดภัยแล้ว
TAG_LOG_BUFFER_SIZE_CRITICAL บัฟเฟอร์บันทึกการรักษาความปลอดภัยใช้พื้นที่ถึงขีดจำกัด 90% แล้ว
TAG_MAX_PASSWORD_ATTEMPTS_SET แอปผู้ดูแลระบบกำหนดจำนวนครั้งที่อนุญาตให้ป้อนรหัสผ่านไม่ถูกต้อง
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET แอปผู้ดูแลระบบตั้งค่าระยะหมดเวลาของการล็อกหน้าจอสูงสุด
TAG_MEDIA_MOUNT สื่อจัดเก็บข้อมูลแบบถอดออกได้ที่ต่อเชื่อมกับอุปกรณ์
TAG_MEDIA_UNMOUNT สื่อจัดเก็บข้อมูลแบบถอดออกได้ที่ไม่ได้ต่อเชื่อม
TAG_OS_SHUTDOWN ระบบ Android ปิดการทำงาน
TAG_OS_STARTUP ระบบ Android เริ่มทำงาน
TAG_PASSWORD_COMPLEXITY_SET แอปผู้ดูแลระบบตั้งค่าข้อกำหนดด้านความซับซ้อนของรหัสผ่าน
TAG_PASSWORD_EXPIRATION_SET แอปผู้ดูแลระบบกำหนดระยะเวลาหมดอายุของรหัสผ่าน
TAG_PASSWORD_HISTORY_LENGTH_SET แอปผู้ดูแลระบบกำหนดความยาวของประวัติรหัสผ่าน เพื่อป้องกันไม่ให้ผู้ใช้ใช้รหัสผ่านเดิมซ้ำ
TAG_REMOTE_LOCK แอปผู้ดูแลระบบล็อกอุปกรณ์หรือโปรไฟล์งาน
TAG_USER_RESTRICTION_ADDED แอปผู้ดูแลระบบตั้งค่าข้อจำกัดของผู้ใช้
TAG_USER_RESTRICTION_REMOVED แอปผู้ดูแลระบบนำข้อจำกัดของผู้ใช้ออก
TAG_WIPE_FAILURE พยายามล้างข้อมูลอุปกรณ์หรือโปรไฟล์งานไม่สำเร็จ

คำถามสำหรับหน้าจอล็อกของโปรไฟล์งาน

เริ่มตั้งแต่ Android 9 เจ้าของโปรไฟล์สามารถกำหนดให้ผู้ใช้ตั้งค่าการล็อกแยกต่างหากได้ สำหรับโปรไฟล์งานโดยใช้ ข้อจำกัดของผู้ใช้ DISALLOW_UNIFIED_PASSWORD ถึง ตรวจสอบว่าผู้ใช้ได้ตั้งคำถามสำหรับหน้าจอล็อกในอุปกรณ์ของตนแบบเดียวกันหรือไม่ และ โปรไฟล์งาน, โทร DevicePolicyManager.isUsingUnifiedPassword()

หากอุปกรณ์มีหน้าจอล็อกของโปรไฟล์งานแยกต่างหาก DevicePolicyManager.setMaximumTimeToLock() ตั้งค่าเฉพาะ ระยะหมดเวลาหน้าจอล็อกของโปรไฟล์งาน ไม่ใช่ทั้งอุปกรณ์

การเข้าถึงเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์

เครื่องมือ Android Debug Bridge (adb) เพื่อช่วยรักษาข้อมูลงานไว้ในโปรไฟล์งาน เข้าถึงไดเรกทอรีและไฟล์ในโปรไฟล์งานไม่ได้

การรองรับตัวเลือกข้อมูลไบโอเมตริกเพิ่มเติม

Android 9 เพิ่มการควบคุมแบบละเอียดสำหรับการตรวจสอบสิทธิ์ฮาร์ดแวร์ด้วยข้อมูลไบโอเมตริกใน หน้าจอล็อกของโปรไฟล์งาน โทรหาหมายเลขที่มีอยู่ DevicePolicyManager.setKeyguardDisabledFeatures() ด้วย KEYGUARD_DISABLE_FACE และ KEYGUARD_DISABLE_IRIS หากต้องการปิดใช้วิธีการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริกทั้งหมดที่อุปกรณ์ระบุ ให้เพิ่ม KEYGUARD_DISABLE_BIOMETRICS

การเลิกใช้งานนโยบายผู้ดูแลระบบอุปกรณ์

Android 9 ทำเครื่องหมายนโยบายที่แสดงอยู่ด้านล่างว่าเลิกใช้งานสำหรับ DPC ที่ใช้อุปกรณ์ ผู้ดูแลระบบ นโยบายจะยังคงทำงานต่อไป ใน Android 9 เหมือนเดิม เริ่มตั้งแต่รุ่น Android 10 นโยบายเดียวกันนี้จะส่ง SecurityException เมื่อผู้ดูแลระบบอุปกรณ์เรียกใช้

แอปพลิเคชันบางอย่างจะใช้ผู้ดูแลระบบอุปกรณ์สำหรับการดูแลระบบอุปกรณ์ของผู้บริโภค สำหรับ เช่น การล็อกและล้างข้อมูลในอุปกรณ์ที่สูญหาย นโยบายต่อไปนี้จะดำเนินต่อไป เพื่อเปิดใช้ฟีเจอร์นี้

โปรดอ่านข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ที่หัวข้อผู้ดูแลระบบอุปกรณ์ การเลิกใช้งาน

การลงทะเบียนคิวอาร์โค้ดที่คล่องตัว

คลังคิวอาร์โค้ดในตัว

Android 9 มาพร้อมกับไลบรารีคิวอาร์โค้ดเพื่อปรับปรุงการทำงานของอุปกรณ์คิวอาร์โค้ด การจัดสรร ผู้ดูแลระบบไอทีไม่ต้องป้อนรายละเอียด Wi-Fi ด้วยตนเองเพื่อตั้งค่าอีกต่อไป อุปกรณ์ แต่สำหรับ Android 9 คุณจะใส่รายละเอียด Wi-Fi เหล่านี้ลงไปได้ ภายในคิวอาร์โค้ด เมื่อผู้ดูแลระบบไอทีสแกนคิวอาร์โค้ดที่เป็นของบริษัท อุปกรณ์จะเชื่อมต่อกับ Wi-Fi โดยอัตโนมัติและป้อน โดยไม่ต้องมีการป้อนข้อมูลด้วยตนเองเพิ่มเติมใดๆ

วิธีการจัดสรรคิวอาร์โค้ดรองรับบริการเสริมต่อไปนี้เพื่อ ระบุรายละเอียด Wi-Fi

กำหนดวันที่และเขตเวลาโดยใช้การจัดสรรเพิ่มเติม

วิธีการจัดสรรคิวอาร์โค้ดรองรับการจัดสรรบริการเสริมเพื่อตั้งเวลาและ เขตเวลาในอุปกรณ์:

ตัวเลือกการล้างข้อมูล

ผู้ดูแลระบบอุปกรณ์สามารถแสดงข้อความที่ปรับเปลี่ยนในแบบของผู้ใช้เมื่อนำงานออก หรือผู้ใช้รอง ข้อความนี้จะช่วยให้ผู้ใช้อุปกรณ์เข้าใจว่า ผู้ดูแลระบบไอทีได้นำโปรไฟล์งานหรือผู้ใช้รองออก โทร wipeData(int, CharSequence) และระบุ ข้อความอธิบาย เมื่อเรียกใช้โดยผู้ใช้หลักหรือเจ้าของอุปกรณ์ ระบบจะโทร ไม่แสดงข้อความและเริ่มรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น

หากต้องการนำข้อมูลการสมัครใช้บริการออกจากซิม eUICC ที่ฝัง โปรดโทร wipeData() และเพิ่ม WIPE_EUICC ใน flags อาร์กิวเมนต์

วิธีการสำหรับเจ้าของโปรไฟล์ที่เชื่อมโยง

วิธีการต่อไปนี้ใช้ได้กับโปรไฟล์ที่เชื่อมโยง เจ้าของ: