פעולות נפוצות

בדף הזה מפורטות דוגמאות לפעולות נפוצות שאפשר לבצע באמצעות ספריית המפיצים הנפוצים של Android, כולל:


יצירת ResellerService אובייקטים

משתמשים במחלקות היצרנים של Samsung ו-Google כדי ליצור אובייקטים ב-ResellerService. באובייקטים ResellerService, קבוצה משותפת של שיטות זמינה לרישום Samsung ומכשירי Android אחרים.

מכשירי Samsung

הדוגמה הבאה מראה איך ליצור אובייקט ResellerService באמצעות כיתה SamsungResellerServiceFactory לניהול מכשירי Samsung.

כדי לעשות זאת, צריך להצטרף עם Knox Deployment Program (KDP).

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

מכשירי Android אחרים

הדוגמה הבאה מראה איך ליצור אובייקט ResellerService באמצעות כיתה GoogleResellerServiceFactory לניהול Android אחר (שאינו Samsung) מכשירים. כדי לעשות את זה, קודם צריך לבצע את ההוראות שמפורטות בקטע מתחילים להרשמה דרך הארגון כדי לקבל את resellerId ואת המפתח של חשבון השירות.

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

יצירת Customer אובייקטים

ללקוחות שרוכש מכשירים של Samsung ושאינם של Samsung נדרשים שני מזהי לקוח.

מכשירי 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 של המכשירים, היצרנים והמזהים של הלקוחות המכשירים נמכרו, אחת הדרכים לנהל הזמנות היא לארגן אותם רשימות: הזמנות של מכשירי 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. הדוגמאות האלה נדרשות שתי בקשות נפרדות: אחת מאובייקט 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. בדוגמה הזו נדרשים בקשות נפרדות: אחת מהאובייקט ResellerService של Samsung ואחת מ- את האובייקט 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. אחרת, היא גורמת לחריגה נפוצה המכילה קוד שגיאה.