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