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