การดําเนินการทั่วไป

หน้านี้มีตัวอย่างการดําเนินการทั่วไปบางส่วนที่คุณอาจทํากับไลบรารีทั่วไปของ Android Android ได้แก่


สร้างออบเจ็กต์ ResellerService รายการ

ใช้คลาส Samsung จากโรงงานของ Google เพื่อสร้างออบเจ็กต์ ResellerService สําหรับออบเจ็กต์ ResellerService จะมีชุดเมธอดทั่วไปไว้ให้ลงทะเบียน Samsung และอุปกรณ์ Android อื่นๆ

อุปกรณ์ Samsung

ตัวอย่างด้านล่างแสดงวิธีสร้างออบเจ็กต์ ResellerService โดยใช้คลาส SamsungResellerServiceFactory ในการจัดการอุปกรณ์ Samsung

ก่อนที่จะดําเนินการดังกล่าว คุณต้องเริ่มต้นใช้งานด้วยโปรแกรมการทําให้ใช้งานได้ของ Knox (KDP)

ResellerService samsungResellerService = SamsungResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath, clientIdentifier);

อุปกรณ์ Android อื่นๆ

ตัวอย่างด้านล่างแสดงวิธีสร้างออบเจ็กต์ ResellerService โดยใช้คลาส GoogleResellerServiceFactory เพื่อจัดการอุปกรณ์ Android อื่นๆ (ที่ไม่ใช่ Samsung) ก่อนทําขั้นตอนนี้ คุณต้องทําตามขั้นตอนในเริ่มต้นใช้งานการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มเพื่อรับ resellerId และคีย์บัญชีบริการ

ResellerService googleResellerService = GoogleResellerServiceFactory.createResellerService(resellerId, serviceAccountKeyFilePath);

สร้างออบเจ็กต์ Customer รายการ

ลูกค้าที่ซื้ออุปกรณ์ Samsung และที่ไม่ใช่ Samsung ต้องใช้รหัสลูกค้า 2 รหัส

อุปกรณ์ Samsung

หากต้องการจัดการอุปกรณ์ Samsung ให้ใช้รหัสลูกค้า Knox ของลูกค้า หากต้องการขอรับรหัสลูกค้า Knox คุณต้องสร้างออบเจ็กต์ Customer ก่อน ซึ่งทําได้โดยการโทรหา createCustomer โดยใช้ SamsungResellerService ที่สร้างจาก SamsungResellerServiceFactory เช่น

CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
    .setCustomerName("TestCustomer") .addPrimaryEmails("superAdmin@gmail.com")
    .putVendorParams("country", "US") .putVendorParams("firstName", "Avery")
    .putVendorParams("lastName", "Yamada") .putVendorParams("service", "KME")
    .build();
CreateCustomerResponse response = samsungResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();

หากสําเร็จ คําขอจะแสดงออบเจ็กต์ CreateCustomerResponse ที่คุณดึงรหัสลูกค้า Knox ได้

อุปกรณ์ Android อื่นๆ

สําหรับอุปกรณ์ Android อื่นๆ ลูกค้าต้องใช้รหัสลูกค้า การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม หากลูกค้าใช้การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มกับตัวแทนจําหน่ายรายอื่นอยู่แล้ว คุณก็ใช้รหัสลูกค้าเดิม มิเช่นนั้น คุณต้องสร้างออบเจ็กต์ Customer ซึ่งทําได้โดยการโทรหา createCustomer โดยใช้ ResellerService ที่สร้างจาก GoogleResellerServiceFactory ดังตัวอย่างต่อไปนี้

CreateCustomerRequest request = CreateCustomerRequest.newBuilder()
    .setCustomerName("TestCustomer")
    .addPrimaryEmails("owner@gmail.com")
    .addSecondaryEmails("admin@gmail.com")
    .build();
CreateCustomerResponse response = googleResellerService.createCustomer(request);
String companyId = response.getCustomer().getCompanyReference().getCompanyId();

หากทําสําเร็จ คําขอจะแสดงออบเจ็กต์ CreateCustomerResponse คุณสามารถดึงรหัสลูกค้าจากการตอบกลับได้


อ้างสิทธิ์กลุ่มอุปกรณ์

การอ้างสิทธิ์ในอุปกรณ์จะสร้างการเชื่อมโยงระหว่างอุปกรณ์กับลูกค้า ตัวอย่างเช่น หากคุณขายกลุ่มอุปกรณ์ให้กับลูกค้า คุณจะอ้างสิทธิ์อุปกรณ์สําหรับลูกค้ารายนั้น

ตัวอย่างนี้แสดงวิธีประมวลผลกลุ่มอุปกรณ์ซึ่งประกอบด้วยคําสั่งซื้ออุปกรณ์จากผู้ผลิตหลายราย (Samsung และอุปกรณ์ Android อื่นๆ) จากลูกค้าหลายราย

ขั้นตอนที่ 1: จัดระเบียบอุปกรณ์และลูกค้า

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

อุปกรณ์ Samsung

ชื่อลูกค้า รหัสลูกค้า Samsung Knox ผู้ผลิต IMEI
บริษัท ABC 11 Samsung

1234567801

1234567802

อุปกรณ์ Android อื่นๆ

ชื่อลูกค้า รหัสลูกค้า ผู้ผลิต IMEI
บริษัท ABC 21 Google 1234567803
บริษัท XYZ 22 Sony

1234567804

1234567805

ขั้นตอนที่ 2: สร้างออบเจ็กต์ ClaimDevicesRequest

อุปกรณ์ Samsung

// Note: You can only claim devices for a single customer in each request.
ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567801")
                   .setManufacturer("Samsung")
                   .build())
       .build())
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567802")
                   .setManufacturer("Samsung")
                   .build())
           .build())
   .build();

อุปกรณ์ Android อื่นๆ

ClaimDevicesRequest claimGoogleDevicesRequest = ClaimDevicesRequest.newBuilder()
    .addClaims(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("21")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .setManufacturer("Google")
                    .build())
            .build())
    .addClaims(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("22")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567804")
                    .setManufacturer("Sony")
                    .build())
            .build())
    .addClaims(
         DeviceClaim.newBuilder()
             .setCustomer(
                 CompanyReference.newBuilder()
                     .setVendor(Vendor.GOOGLE)
                     .setCompanyId("22")
                     .build())
             .setDeviceIdentifier(
                 DeviceIdentifier.newBuilder()
                     .setImei("1234567805")
                     .setManufacturer("Sony")
                     .build())
             .build())
    .build();

ขั้นตอนที่ 3: อ้างสิทธิ์อุปกรณ์สําหรับลูกค้า

หากต้องการโทรหาอุปกรณ์สําหรับลูกค้า โปรดโทรหา ClaimDevicesAsync ตัวอย่างนี้ต้องมีคําขอ 2 รายการแยกกัน ได้แก่ คําขอจากออบเจ็กต์ ResellerService ของ Samsung และคําขออีกรายการจากออบเจ็กต์ ResellerService ของ Google

// Samsung devices
ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

// Other Android devices
ClaimDevicesResponse googleResponse = googleResellerService.claimDevicesAsync(claimGoogleDevicesRequest);

คําขอ ClaimDevicesAsync แสดงผลรายการออบเจ็กต์ Operation ซึ่งแสดงสถานะของคําขอ (อยู่ระหว่างดําเนินการ ดําเนินการเสร็จสมบูรณ์ มีข้อผิดพลาด หรือล้มเหลว) หากต้องการตรวจสอบสถานะของการดําเนินการ (เช่น หากการตอบกลับแสดงผล IN_PROGRESS) ให้เรียกใช้ getOperation

// Samsung devices
GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

// Other Android devices
GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

ยกเลิกการอ้างสิทธิ์กลุ่มอุปกรณ์

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

ขั้นตอนที่ 1: สร้างออบเจ็กต์ UnclaimDevicesRequest

อุปกรณ์ Samsung

// Each request can only unclaim devices belonging to a single customer. The request must also
// include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .putVendorParams("customerId", "11")
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567801")
                    .build())
        .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567802")
                    .build())
            .build())
    .build();

อุปกรณ์ Android อื่นๆ

UnclaimDevicesRequest unclaimGoogleDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567804")
                    .build())
            .build())
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567805")
                    .build())
            .build())
    .build();

ขั้นตอนที่ 2: ถอนการอ้างสิทธิ์อุปกรณ์

หากต้องการเลิกเรียกอุปกรณ์ โปรดโทรหา UnclaimDevicesAsync ตัวอย่างนี้ต้องมีคําขอ 2 รายการแยกกัน ได้แก่ คําขอ 1 รายการจากออบเจ็กต์ Samsung ResellerService และ 1 รายการจากออบเจ็กต์ ResellerService ของ Google

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);
UnclaimDevicesResponse googleResponse = googleResellerService.unclaimDevicesAsync(unclaimGoogleDevicesRequest);

คําขอ UnclaimDevicesAsync แสดงผลรายการของออบเจ็กต์ Operation ซึ่งแสดงสถานะของคําขอ (อยู่ระหว่างดําเนินการ เสร็จสมบูรณ์ มีข้อผิดพลาด หรือล้มเหลว) หากต้องการตรวจสอบสถานะของการดําเนินการ (เช่น หากการตอบกลับแสดงผล IN_PROGRESS) ให้เรียกใช้ getOperation

อุปกรณ์ Samsung

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

อุปกรณ์ Android อื่นๆ

GetOperationRequest googleOperationRequest = GetOperationRequest.newBuilder().setOperationId(googleOperationId).build();
Operation googleOperation = googleResellerService.getOperation(googleOperationRequest);

แลกเปลี่ยนอุปกรณ์ Samsung

หากจําเป็นต้องเปลี่ยนอุปกรณ์ด้วยเหตุผลใดก็ตาม คุณก็แลกเปลี่ยนอุปกรณ์ได้ ตัวอย่างนี้จะสมมติว่าคุณกําลังแลกอุปกรณ์ Samsung กับอุปกรณ์ Samsung อื่น

ขั้นตอนที่ 1: สร้างออบเจ็กต์ UnclaimDeviceRequest

// Note: The request must include the customer's Samsung Knox customer ID.
UnclaimDevicesRequest unclaimSamsungDevicesRequest = UnclaimDevicesRequest.newBuilder()
    .putVendorParams("customerId", "11")
    .addUnclaims(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567801")
                    .build())
        .build())
    .build();

ขั้นตอนที่ 2: โทร UnclaimDeviceAsync

UnclaimDevicesResponse samsungResponse = samsungResellerService.unclaimDevicesAsync(unclaimSamsungDevicesRequest);

คําขอ UnclaimDevicesAsync แสดงผลออบเจ็กต์ Operation รายการซึ่งมีสถานะคําขอ (อยู่ระหว่างดําเนินการ ดําเนินการเสร็จสมบูรณ์ มีข้อผิดพลาด หรือล้มเหลว) หากต้องการตรวจสอบสถานะของการดําเนินการ (เช่น หากการตอบกลับแสดงผล IN_PROGRESS) ให้โทรหา getOperation:

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

ขั้นตอนที่ 3: สร้างออบเจ็กต์ ClaimDeviceRequest

ClaimDevicesRequest claimSamsungDevicesRequest = ClaimDevicesRequest.newBuilder()
   .addClaims(
       DeviceClaim.newBuilder()
           .setCustomer(
               CompanyReference.newBuilder()
                   .setVendor(Vendor.SAMSUNG)
                   .setCompanyId("11")
                   .build())
           .setDeviceIdentifier(
               DeviceIdentifier.newBuilder()
                   .setImei("1234567806")
                   .setManufacturer("Samsung")
                   .build())
       .build())
   .build();

ขั้นตอนที่ 4: โทร ClaimDeviceAsync

ClaimDevicesResponse samsungResponse = samsungResellerService.claimDevicesAsync(claimSamsungDevicesRequest);

คําขอ ClaimDevicesAsync แสดงผลออบเจ็กต์ Operation รายการซึ่งมีสถานะคําขอ (อยู่ระหว่างดําเนินการ ดําเนินการเสร็จสมบูรณ์ มีข้อผิดพลาด หรือล้มเหลว) หากต้องการตรวจสอบสถานะของการดําเนินการ (เช่น หากการตอบกลับแสดงผล IN_PROGRESS) ให้โทรหา getOperation:

GetOperationRequest samsungOperationRequest = GetOperationRequest.newBuilder().setOperationId(samsungOperationId).build();
Operation samsungOperation = samsungResellerService.getOperation(samsungOperationRequest);

แลกเปลี่ยนอุปกรณ์ Android (ไม่ใช่ Samsung)

หากจําเป็นต้องเปลี่ยนอุปกรณ์ด้วยเหตุผลใดก็ตาม คุณก็แลกเปลี่ยนอุปกรณ์ได้ ตัวอย่างนี้จะสมมติว่าคุณกําลังแลกเปลี่ยนอุปกรณ์ Android (ไม่ใช่ Samsung) สําหรับอุปกรณ์ Android (ที่ไม่ใช่ Samsung) เครื่องอื่น

ขั้นตอนที่ 1: สร้างออบเจ็กต์ UnclaimDeviceRequest

UnclaimDeviceRequest unclaimGoogleDeviceRequest = UnclaimDeviceRequest.newBuilder()
    .setUnclaim(
        DeviceUnclaim.newBuilder()
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567803")
                    .build())
            .build())
    .build();

ขั้นตอนที่ 2: โทร UnclaimDevice

googleResponse = googleResellerService.unclaimDevice(unclaimGoogleDeviceRequest);

ขั้นตอนที่ 3: สร้างออบเจ็กต์ ClaimDeviceRequest

ClaimDeviceRequest claimGoogleDeviceRequest = ClaimDeviceRequest.newBuilder()
    .setClaim(
        DeviceClaim.newBuilder()
            .setCustomer(
                CompanyReference.newBuilder()
                    .setVendor(Vendor.GOOGLE)
                    .setCompanyId("21")
                    .build())
            .setDeviceIdentifier(
                DeviceIdentifier.newBuilder()
                    .setImei("1234567807")
                    .setManufacturer("Google")
                    .build())
            .build())
       .build();

ขั้นตอนที่ 4: โทร ClaimDevice

ClaimDeviceResponse response = googleResellerService.claimDevice(claimGoogleDeviceRequest);

หากทําสําเร็จ การเรียกใช้ออบเจ็กต์ ClaimDeviceResponse ที่มี deviceId กลับมา ไม่เช่นนั้นก็จะมีการส่งข้อยกเว้นทั่วไปซึ่งมีรหัสข้อผิดพลาด