สร้างเครื่องมือควบคุมนโยบายด้านอุปกรณ์

คู่มือนี้อธิบายวิธีพัฒนาเครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC) สำหรับอุปกรณ์ในการติดตั้งใช้งาน Android Enterprise แอป DPC ซึ่งก่อนหน้านี้รู้จักกันในชื่อตัวควบคุมนโยบายงานจะควบคุมนโยบายอุปกรณ์ในเครื่องและแอปพลิเคชันระบบในอุปกรณ์

เกี่ยวกับ DPC

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

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

DPC จะสร้างและจัดการโปรไฟล์งานในอุปกรณ์ที่ติดตั้ง โปรไฟล์งานจะเข้ารหัสข้อมูลที่เกี่ยวข้องกับงานและแยกข้อมูลดังกล่าวออกจาก แอปและข้อมูลส่วนตัวของผู้ใช้ ก่อนสร้างโปรไฟล์งาน DPC ยังสามารถ จัดสรรบัญชี Managed Google Play เพื่อใช้ในอุปกรณ์ได้ด้วย

คู่มือนี้จะแสดงวิธีพัฒนา DPC ที่สร้างและจัดการโปรไฟล์งานได้

ไลบรารีการสนับสนุน DPC สำหรับ EMM

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

  • การรองรับการจัดสรรบัญชี Managed Google Play: การจัดสรรบัญชี Managed Google Play จากแอป DPC กำหนดให้แอป Google Play และบริการ Google Play ต้องเป็นไปตามข้อกำหนดด้านเวอร์ชันขั้นต่ำ อย่างไรก็ตาม การอัปเดตแอปเหล่านี้อาจเป็นเรื่องที่ซับซ้อน ไลบรารีการรองรับ DPC จะดูแลการอัปเดตแอปเหล่านี้ และยังช่วยให้มั่นใจได้ว่าการอัปเดตในอนาคตจะใช้งานร่วมกับกระบวนการจัดสรรบัญชี Google Play ที่มีการจัดการได้ ดูรายละเอียดได้ที่การรองรับการจัดสรรกลุ่มบัญชี Managed Google Play
  • การรองรับการกำหนดค่าที่มีการจัดการ: การใช้ Play EMM API เพื่อจัดการการกำหนดค่าที่มีการจัดการสำหรับแอปที่ได้รับอนุมัติเป็นวิธีที่ง่ายที่สุดในการติดตั้งใช้งานการกำหนดค่าที่มีการจัดการใน DPC ไลบรารีการสนับสนุน DPC ช่วยให้คุณมอบหมายงานการใช้การกำหนดค่าที่มีการจัดการ (เดิมคือการจำกัดแอป) ให้กับ Google Play ตามที่ผู้ดูแลระบบตั้งค่าไว้โดยใช้คอนโซล EMM การใช้ Play EMM API เพื่อจัดการการกำหนดค่าที่มีการจัดการจะช่วยให้ ใช้การกำหนดค่าแอปแบบอะตอมในระหว่างการติดตั้งได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเปิดใช้ความสามารถนี้ใน DPC ได้ที่หัวข้อ ใช้การกำหนดค่าที่มีการจัดการ กับแอปงาน

ทำตามขั้นตอนด้านล่างเพื่อดาวน์โหลดไลบรารี งานที่อธิบายโดยละเอียดในคู่มือนี้ ถือว่าใช้ไลบรารีการสนับสนุน DPC

ดาวน์โหลดไลบรารีการสนับสนุน DPC

หากต้องการใช้ไลบรารีการสนับสนุน DPC ให้ดาวน์โหลดไลบรารีจากชุมชนผู้ให้บริการ EMM ของ Android Enterprise คุณต้องเพิ่มไลบรารีลงในไฟล์ build.gradle และดูแลทรัพยากร Dependency อื่นๆ เมื่อสร้างแอป DPC ตัวอย่างเช่น ไลบรารีต้องใช้ 11.4.0 ไลบรารีไคลเอ็นต์การตรวจสอบสิทธิ์ของ Google Play Services

  1. เพิ่มไลบรารีลงในไฟล์ build.gradle

    Groovy

    implementation(name:'dpcsupport-yyyymmdd', ext:'aar')

    Kotlin

    implementation(name = "dpcsupport-yyyymmdd", ext = "aar")
  2. เพิ่ม 11.4.0 ไลบรารีของไคลเอ็นต์การตรวจสอบสิทธิ์ของ Google Play Services ลงในไฟล์ build.gradle

    Groovy

    implementation 'com.google.android.gms:play-services-auth:11.4.0'

    Kotlin

    implementation("com.google.android.gms:play-services-auth:11.4.0")

ไลบรารีต้องใช้สิทธิ์บางอย่างในการเรียกใช้ ดังนั้นคุณต้องเพิ่มสิทธิ์เหล่านี้ลงในไฟล์ Manifest ของแอป DPC เมื่ออัปโหลดไปยัง Google Play

  <uses-permission android:name=
      "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
  <uses-permission android:name=
      "android.permission.GET_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.MANAGE_ACCOUNTS"/>
  <uses-permission android:name=
      "android.permission.WRITE_SYNC_SETTINGS"/>
  <uses-permission android:name=
      "com.google.android.providers.gsf.permission.READ_GSERVICES"/>

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

สร้าง DPC

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

สร้างโปรไฟล์งาน

ดูตัวอย่างที่แสดงวิธีสร้างโปรไฟล์งานพื้นฐานได้ที่ BasicManagedProfile ใน GitHub

หากต้องการสร้างโปรไฟล์งานในอุปกรณ์ที่มีโปรไฟล์ส่วนตัวอยู่แล้ว ก่อนอื่นให้ตรวจสอบว่าอุปกรณ์รองรับโปรไฟล์งานหรือไม่ โดยดูว่ามี FEATURE_MANAGED_USERS ฟีเจอร์ระบบต่อไปนี้หรือไม่

Kotlin

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

Java

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
    // This device does not support work profiles!
}

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

Kotlin

val provisioningActivity = getActivity()

// You'll need the package name for the DPC app.
val myDPCPackageName = "com.example.myDPCApp"

// Set up the provisioning intent
val adminComponent = ComponentName(provisioningActivity.applicationContext, MyAdminReceiver::class.java)
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString())
if (provisioningIntent.resolveActivity(provisioningActivity.packageManager) == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE)
    provisioningActivity.finish()
}

Java

Activity provisioningActivity = getActivity();
// You'll need the package name for the DPC app.
String myDPCPackageName = "com.example.myDPCApp";
// Set up the provisioning intent
Intent provisioningIntent =
        new Intent("android.app.action.PROVISION_MANAGED_PROFILE");
ComponentName adminComponent = new ComponentName(provisioningActivity.getApplicationContext(), MyAdminReceiver.class);
provisioningIntent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, adminComponent.flattenToString());
if (provisioningIntent.resolveActivity(provisioningActivity.getPackageManager())
         == null) {
    // No handler for intent! Can't provision this device.
    // Show an error message and cancel.
} else {
    // REQUEST_PROVISION_MANAGED_PROFILE is defined
    // to be a suitable request code
    startActivityForResult(provisioningIntent,
            REQUEST_PROVISION_MANAGED_PROFILE);
    provisioningActivity.finish();
}

ระบบจะตอบสนองต่อความตั้งใจนี้โดยทำสิ่งต่อไปนี้

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

ลบล้าง onActivityResult() เพื่อ ดูว่าการจัดสรรสำเร็จหรือไม่

Kotlin

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data)
    }
}

Java

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check if this is the result of the provisioning activity
    if (requestCode == REQUEST_PROVISION_MANAGED_PROFILE) {
        // If provisioning was successful, the result code is
        // Activity.RESULT_OK
        if (resultCode == Activity.RESULT_OK) {
            // Work profile created and provisioned.
        } else {
            // Provisioning failed.
        }
        return;
    } else {
        // This is the result of some other activity. Call the superclass.
        super.onActivityResult(requestCode, resultCode, data);
    }
}

เปิดใช้โปรไฟล์งานให้เสร็จ

เมื่อจัดสรรโปรไฟล์แล้ว ระบบจะเรียกใช้เมธอด DeviceAdminReceiver.onProfileProvisioningComplete() ของแอป DPC แทนที่ เมธอดเรียกกลับนี้เพื่อเปิดใช้โปรไฟล์งานให้เสร็จสมบูรณ์

โดยทั่วไป DeviceAdminReceiver.onProfileProvisioningComplete() การติดตั้งใช้งานการเรียกกลับจะทำสิ่งต่อไปนี้

เปิดใช้งานโปรไฟล์งาน

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

Kotlin

// Get the device policy manager
val myDevicePolicyMgr = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
val componentName = myDeviceAdminReceiver.getComponentName(this)
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile")
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName)

Java

// Get the device policy manager
DevicePolicyManager myDevicePolicyMgr =
        (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName componentName = myDeviceAdminReceiver.getComponentName(this);
// Set the name for the newly created work profile.
myDevicePolicyMgr.setProfileName(componentName, "My New Work Profile");
// ...and enable the profile
myDevicePolicyMgr.setProfileEnabled(componentName);

ตั้งค่านโยบายอุปกรณ์

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

ดูข้อมูลเกี่ยวกับวิธีใช้นโยบายอุปกรณ์ได้ที่ นโยบาย

ใช้การกำหนดค่าที่มีการจัดการ กับแอปงาน

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

ความสามารถของแอปกำหนดโดยนักพัฒนาแอปในสคีมา XML (สคีมาการกำหนดค่าที่มีการจัดการ) ซึ่งมาพร้อมกับแอปเมื่ออัปโหลดไปยัง Google Play (นักพัฒนาแอป โปรดดูรายละเอียดที่ตั้งค่าการกำหนดค่าที่มีการจัดการ)

คุณดึงสคีมานี้จากแอปเพื่อแสดงต่อผู้ดูแลระบบลูกค้า ในคอนโซล EMM, จัดเตรียม UI ที่แสดงตัวเลือกต่างๆ ที่กำหนดไว้ใน สคีมา และช่วยให้ผู้ดูแลระบบกำหนดค่าการตั้งค่าของแอปไว้ล่วงหน้าได้ โดยปกติแล้ว การกำหนดค่าที่มีการจัดการที่ผู้ดูแลระบบตั้งค่าไว้จะ จัดเก็บไว้ในเซิร์ฟเวอร์ EMM ซึ่งจะใช้ Play EMM API เพื่อตั้งค่า Managedconfigurationsfordevice หรือ Managedconfigurationsforuser ดูรายละเอียดได้ที่ การกำหนดค่าที่มีการจัดการ ผ่าน Play

คุณใช้การกำหนดค่าที่มีการจัดการกับแอปได้โดยใช้ Play EMM API (วิธีที่แนะนำ) หรือจาก DPC โดยตรง (อธิบายไว้ในใช้การกำหนดค่าที่มีการจัดการ จาก DPC โดยตรง) การใช้ Play EMM API มีข้อดีหลายประการ รวมถึงการติดตั้งใช้งานที่ง่ายเนื่องจากคุณใช้ไลบรารีการรองรับ DPC เพื่อลดความซับซ้อนของงาน DPC ได้ นอกจากนี้ Play EMM API ยังมีฟีเจอร์ต่อไปนี้

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

ใช้การกำหนดค่าที่มีการจัดการโดยใช้ Play EMM API

หากต้องการใช้ Play EMM API สำหรับการกำหนดค่าที่มีการจัดการ DPC ต้องอนุญาตให้ Google Play ตั้งค่ากำหนดค่า DPC Support Library จะจัดการงานนี้ให้คุณโดยการพร็อกซีการกำหนดค่าที่ Google Play ส่งมา

หากต้องการใช้ Play EMM API ให้ดาวน์โหลดไลบรารีการรองรับ DPC จากนั้นเปิดใช้การรองรับการกำหนดค่าที่มีการจัดการใน DPC

เปิดใช้การรองรับการกำหนดค่าที่มีการจัดการใน DPC

นำเข้าชั้นเรียนนี้ใน DPC โดยทำดังนี้

com.google.android.apps.work.dpcsupport.ManagedConfigurationsSupport

เริ่มต้นไลบรารีการกำหนดค่าที่มีการจัดการ ในตัวอย่างนี้ "admin" คือ ComponentName ของ DeviceAdminReceiver

Kotlin

var managedConfigurationsSupport = ManagedConfigurationsSupport(context, admin)

Java

ManagedConfigurationsSupport managedConfigurationsSupport =
    new ManagedConfigurationsSupport(context, admin);

วิธีเปิดใช้การกำหนดค่าที่มีการจัดการ

Kotlin

managedConfigurationsSupport.enableManagedConfigurations()

Java

managedConfigurationsSupport.enableManagedConfigurations();

เมื่อเริ่มต้นใช้งานไลบรารีนี้ใน DPC แล้ว คุณจะใช้ Google Play EMM API ในคอนโซลและเซิร์ฟเวอร์ EMM เพื่อใช้การกำหนดค่าที่มีการจัดการกับแอปที่ได้รับอนุมัติได้แทนการเขียนโค้ดงานเหล่านี้ใน DPC โดยตรง ดูรายละเอียดได้ที่ การกำหนดค่าที่มีการจัดการผ่าน Play

ใช้การกำหนดค่าที่มีการจัดการ จาก DPC โดยตรง

หากต้องการเปลี่ยนการตั้งค่าการกำหนดค่าของแอปจาก DPC โดยตรง ให้เรียกใช้เมธอด DevicePolicyManager.setApplicationRestrictions() และส่งพารามิเตอร์สำหรับ DeviceAdminReceiver ของแอป DPC, ชื่อแพ็กเกจของแอปเป้าหมาย และ Bundle ที่ประกอบด้วย การกำหนดค่าที่มีการจัดการของแอปตามที่ผู้ดูแลระบบตั้งค่าไว้ โปรดดูรายละเอียดที่หัวข้อวิธีที่ DPC และคอนโซล EMM โต้ตอบกันและตั้งค่าการกำหนดค่าที่มีการจัดการ อย่างไรก็ตาม โปรดทราบว่าเราไม่แนะนำให้ใช้วิธีการกำหนดค่าที่มีการจัดการแบบอื่นนี้ในการติดตั้งใช้งานบัญชี Managed Google Play

การจัดสรรบัญชี Managed Google Play การสนับสนุน

ไลบรารีการสนับสนุน DPC มีการสนับสนุน สำหรับการจัดสรร บัญชี Managed Google Play หากต้องการใช้การสนับสนุนนี้ คุณต้องเริ่มต้นใช้งานไลบรารีก่อน จากนั้นจึงจะตรวจสอบสภาพแวดล้อมการทำงานและเพิ่มบัญชี Managed Google Play ได้

เริ่มต้นใช้งานบัญชี Google Play ที่มีการจัดการ ใน DPC

นำเข้าชั้นเรียนนี้ใน DPC โดยทำดังนี้

com.google.android.apps.work.dpcsupport.AndroidForWorkAccountSupport

เริ่มต้นใช้งานไลบรารีความเข้ากันได้ในการจัดสรร ในตัวอย่างนี้ "admin" คือ ComponentName ของ DeviceAdminReceiver

Kotlin

var androidForWorkAccountSupport = AndroidForWorkAccountSupport(context, admin)

Java

AndroidForWorkAccountSupport androidForWorkAccountSupport =
    new AndroidForWorkAccountSupport(context, admin);

ตรวจสอบสภาพแวดล้อมการทำงานสำหรับ บัญชี Managed Google Play

หลังจาก DPC จัดสรรอุปกรณ์ในโหมดเจ้าของโปรไฟล์ (ACTION_PROVISION_MANAGED_PROFILE) หรือโหมดเจ้าของอุปกรณ์ (ACTION_PROVISION_MANAGED_DEVICE) แล้ว ให้ตรวจสอบว่าอุปกรณ์รองรับบัญชี Google Play ที่มีการจัดการได้โดยการเรียกใช้

Kotlin

androidForWorkAccountSupport.ensureWorkingEnvironment(callback)

Java

androidForWorkAccountSupport.ensureWorkingEnvironment(callback);

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

Kotlin

object : WorkingEnvironmentCallback() {
    override fun onSuccess() {
        // Can now provision the managed Google Play Account
    }
    override fun onFailure(error: Error) {
        // Notify user, handle error (check network connection)
    }
}

Java

new WorkingEnvironmentCallback() {
    @Override
    public void onSuccess() {
        // Can now provision the managed Google Play Account
    }

    @Override
    public void onFailure(Error error) {
        // Notify user, handle error (check network connection)
    }
}

เพิ่มบัญชี Managed Google Play

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

Kotlin

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback)

Java

androidForWorkAccountSupport.addAndroidForWorkAccount(token, accountAddedCallback);
  • token - โทเค็นการตรวจสอบสิทธิ์ผู้ใช้ที่สร้างขึ้นโดยการเรียกใช้ Google Play EMM API Users.generateAuthenticationToken()
  • accountAddedCallback - แสดงบัญชี Google Play ที่มีการจัดการ ซึ่งเพิ่มลงในอุปกรณ์เรียบร้อยแล้ว โดยการเรียกกลับนี้ควรมีเมธอด onAccountReady() และ onFailure()

Kotlin

val workAccountAddedCallback = object : WorkAccountAddedCallback() {
    override fun onAccountReady(account: Account, deviceHint: String) {
        // Device account was successfully added to the device
        // and is ready to be used.
    }

    override fun onFailure(error: Error) {
        // The account was not successfully added. Check that the token
        // provided was valid (it expires after a certain period of time).
    }
}

Java

WorkAccountAddedCallback workAccountAddedCallback =
    new WorkAccountAddedCallback() {
        @Override
        public void onAccountReady(Account account, String deviceHint) {
            // Device account was successfully added to the device
            // and is ready to be used.
        }

        @Override
        public void onFailure(Error error) {
            // The account was not successfully added. Check that the token
            // provided was valid (it expires after a certain period of time).
        }
};
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับ Device Administration API ได้ที่ Device Administration
  • ดูข้อมูลเกี่ยวกับวิธีการจัดสรร Android Enterprise ได้ที่จัดสรรอุปกรณ์ในคู่มือสำหรับนักพัฒนาซอฟต์แวร์ Android Enterprise
  • ดูตัวอย่าง GitHub ที่แสดงวิธีสร้างโปรไฟล์งานพื้นฐานได้ที่ BasicManagedProfile
  • ดูตัวอย่าง GitHub ที่แสดงวิธีกำหนดค่าในแอปอื่นๆ ในฐานะเจ้าของโปรไฟล์ได้ที่ AppRestrictionEnforcer