בדף הזה מפורטות דוגמאות לפעולות נפוצות שאפשר לבצע באמצעות ספריית Android Reseller Library המשותפת, כולל:
- יצירת אובייקטים מסוג
ResellerService
- יצירת אובייקטים מסוג
Customer
- הצהרה על קבוצה של מכשירים
- ביטול הקצאה של קבוצת מכשירים
- החלפת מכשיר Samsung
- החלפת מכשיר Android (לא של Samsung)
יצירת אובייקטים מסוג ResellerService
משתמשים ב-classes המקוריות של 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 corp | 11 |
Samsung |
|
מכשירי Android אחרים
שם הלקוח | מספר לקוח | היצרן | IMEI |
---|---|---|---|
ABC corp | 21 |
Google |
1234567803 |
XYZ corp | 22 |
Sony |
|
שלב 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
. אחרת, הוא יוצר חריג נפוץ שמכיל קוד שגיאה.